• 1928阅读
  • 7回复

[提问]Qt5.15想用C++20,必须重新编译源码吗? [复制链接]

上一主题 下一主题
离线wangjianxyz
 

只看楼主 倒序阅读 楼主  发表于: 2024-07-19
安装了Qt5.15.2,发现自带的mingw时 mingw8,并不支持C++20. 我想在Qt5.15上用C++20,必须用mingw13,重新编译Qt5.15.2的源码吗?       至于为什么不全都换成Qt6.5.3,因为还有需要支持win7的程序。
离线20091001753

只看该作者 1楼 发表于: 2024-07-19
(づ ̄ 3 ̄)づ
离线wangjianxyz

只看该作者 2楼 发表于: 2024-07-20
我下载了你说的那个,奇怪的是不起作用。

我用Qt5.15.14的时候,C++20的代码报错;同一个工程,我切换成Qt6.5的时候,就不报错了,正常运行;




#include <iostream>
#include <compare>

using namespace  std ;


int main() {
    int a = 10;
    int b = 20;

    auto result = a <=> b;
    if (result == std::strong_ordering::less) {
        std::cout << "a is less than b" << std::endl;
    } else if (result == std::strong_ordering::greater) {
        std::cout << "a is greater than b" << std::endl;
    } else {
        std::cout << "a is equal to b" << std::endl;
    }

    return 0;
}
离线realfan

只看该作者 3楼 发表于: 2024-07-21
回 wangjianxyz 的帖子
wangjianxyz:我下载了你说的那个,奇怪的是不起作用。
我用Qt5.15.14的时候,C++20的代码报错;同一个工程,我切换成Qt6.5的时候,就不报错了,正常运行;
....... (2024-07-20 17:59) 

这段代码与Qt没有任何关系。
出错在原因,大概率是因为pro文件,没有指定正确的C++版本。在pro中加
CONFIG+= c++20

CONFIG+=c++2a
试试
离线wangjianxyz

只看该作者 4楼 发表于: 2024-07-21
回 realfan 的帖子
realfan:这段代码与Qt没有任何关系。
出错在原因,大概率是因为pro文件,没有指定正确的C++版本。在pro中加
CONFIG+= c++20

....... (2024-07-21 08:05) 

改成C++2a好用了
离线wangjianxyz

只看该作者 5楼 发表于: 2024-07-28
这几天尝试了一下,自己编译,Qt5.15.14,结果发现mignw1、mingw13,都会报错。源码里有些错误。  

改用vs编译,倒是成功了。
离线fsu0413

只看该作者 6楼 发表于: 2024-08-10
回 wangjianxyz 的帖子
wangjianxyz:这几天尝试了一下,自己编译,Qt5.15.14,结果发现mignw1、mingw13,都会报错。源码里有些错误。  
改用vs编译,倒是成功了。 (2024-07-28 20:17) 

https://github.com/Fsu0413/Fs-scripts/tree/master/Patches/5.15
离线wangjianxyz

只看该作者 7楼 发表于: 2024-08-12
回 fsu0413 的帖子
fsu0413:https://github.com/Fsu0413/Fs-scripts/tree/master/Patches/5.15 (2024-08-10 13:10) 

多谢
快速回复
限100 字节
 
上一个 下一个