QT5 MinGW切换MSVC编译问题

QT5 MinGW切换MSVC编译遇到编译不过问题

例:
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    //中文注释
    QString str = tr("否");
    QString str1 = tr("否z");
    //中文注释啊
    ui->label->setText(str);
}

问题点描述:
源代码文件是无BOM的utf-8编码格式,QtCreator用MinGW编译OK,切换成MSVC后报错:
mainwindow.cpp(1): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
mainwindow.cpp(23): error C2001: 常量中有换行符
mainwindow.cpp(24): error C2146: 语法错误: 缺少“)”(在标识符“QString”的前面)
mainwindow.cpp(24): error C2146: 语法错误: 缺少“;”(在标识符“QString”的前面)

解决方式1:
①在工程pro文件中添加

msvc {
    QMAKE_CFLAGS += /utf-8
    QMAKE_CXXFLAGS += /utf-8
}

解决方式2:
①将源代码文件改为有BOM的utf-8编码格式,
②在报错的文件开头加入(指定执行字符集)

#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif

源字符集和执行字符集都是utf-8不会出现乱码问题。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
引用\[1\]中提到了在切换QT5 MinGWMSVC编译时遇到的问题,引用\[2\]中提到了编码的问题,以及QT5的Qstring默认是UTF8格式,而MSVC只支持带BOM的UTF8格式。引用\[3\]中提到了MSVC是微软自己的编译器,可以直接运行不需要编译。根据这些信息,可以得出qt mingwmsvc的区别如下: 1. 编译器:QT MinGW使用MinGW编译器,而MSVC使用微软自己的编译器(Microsoft Visual C++ Compiler)。 2. 编码支持:QT MinGW默认使用UTF8编码,而MSVC只支持带BOM的UTF8编码。因此,在使用MSVC编译时,需要注意编码的转换。 3. 依赖库:在使用MSVC编译时,可以直接使用Windows下的OpenCV库,而不需要进行编译。这是因为MSVC编译器与Visual Studio的版本有对应关系,可以直接运行。 总结起来,QT MinGWMSVC的区别主要在于编译器和编码支持方面。选择使用哪种编译器取决于项目的需求和开发环境的配置。 #### 引用[.reference_title] - *1* [QT5 MinGW切换MSVC编译问题](https://blog.csdn.net/xinlongabc/article/details/121708435)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Qt编译MinGWMSVC的区别](https://blog.csdn.net/qq_43445867/article/details/127889570)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Windows下的Qt编译器——MinGWMSVC的区别](https://blog.csdn.net/flowerspring/article/details/116924437)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值