如何在Qt Creator中关闭g++的UNICODE编译标志?
解决Qt项目中无法移除-DUNICODE/-D_UNICODE编译参数的问题
问题根源
直接用QMAKE_CXXFLAGS -= -DUNICODE没生效,是因为Qt在Windows平台下,UNICODE和_UNICODE宏通常是由CONFIG变量里的unicode选项自动添加的,并非直接写入QMAKE_CXXFLAGS,所以单独修改QMAKE_CXXFLAGS无法覆盖这个默认行为。
解决步骤
- 第一步:禁用Qt的unicode自动配置
在.pro文件中添加:CONFIG -= unicode - 第二步:显式移除编译参数(双重保险)
继续在.pro文件中补充:
注意要同时处理C和C++的编译参数,避免遗漏。QMAKE_CXXFLAGS -= -DUNICODE -D_UNICODE QMAKE_CFLAGS -= -DUNICODE -D_UNICODE - 第三步:清理缓存并重新构建
删除项目目录下的.qmake.stash文件,以及build文件夹内的所有内容,之后重新运行qmake再编译项目,确保新配置完全生效。
验证方法
重新编译时查看生成的g++命令,确认-DUNICODE和-D_UNICODE已被移除。
内容的提问来源于stack exchange,提问作者Tommmmmm
相关产品推荐
相关产品推荐

