1.常量中有换行符Qt5-》vs的解决方案
原帖地址:解决vs+QT5支持中文字符_qt vs支持中文_CuteSoap的博客-CSDN博客
今天将qt项目从mingw转成msvc2013编译时,中文字符报错,查找网上方法后,得到我满意的解决方案。
文件格式依旧时默认的UTF-8格式。
1.用Sublime等编辑器将 存有中文字符的代码文件打开,并以UTF-8 withBOM格式保存
保存编码只针对main.cpp,两个文件要保存编码两次
2.打开项目,再存有中文字符的代码文件 的头文件中 添加一行代码
#pragma execution_character_set("utf-8")
这样用vc的编译器也能编译utf-8格式的代码了。
2020-09-11
如果源代码保存为不带 BOM 的 utf-8。那需要告诉 VS2015 我们的编码格式是 utf-8,可以在 pro 文件中加入如下的代码:
msvc:QMAKE_CXXFLAGS += -source-charset:utf-8
2.同一份代码Qt和vs共同编译的问题和解决方案
1.两者的编译路径不一样,Qt一般是影子路径,VS一般是当前路径(pro路径)
2.当VS编译时会在,当前路径生成ui文件,导致Qt编译时,不会生成新的ui文件,而是读取VS编译的
UI_DIR = temp/ui;VS:pro/temp/ui;Qt:build/temp/ui
3.涉及到外部动态库,配置文件的读取,两者编译时无法复用
DESTDIR = $$PWD/bin,确保两者的生成的exe等指向的项目路径一样
4.UTF-8和UTF-8 BOM的解决方案
看常量中有换行符Qt5-》vs的解决方案
5.由于时代码复用,VS每次编译时都需要重新打开pro文件