编译输出文件夹选择: ..\build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}
使用shadow build文件夹,相对位置,
1.字符编码问题
问题:程序或者注释里面有汉字,就会有报错的可能,本来是正常编译运行,复制到另一个地方,或者上传到github再下载下来,都有报错的可能。
解决:文件开头 添加 #pragma execution_character_set("utf-8") 在编译的时候就声明本文件是什么编码。然后再编译就不会报错了
这个解决了文本中有汉字,编译不报错的问题
特殊情况备注:文件头添加了#pragma 编译有时候还是会报错,例如下面情况:
inputLineEdit->setPlaceholderText("输入十进制/十六进制/二进制"); 仍然会报错,
改成 inputLineEdit->setPlaceholderText("输入十进制、十六进制、二进制");就不报错了
乱码情况:文本中的汉字显示在界面上还是会报错,文本也是UTF-8格式
解决:此时需要把文本从UTF-8转换成UTF-8-BOM,可以使用notepad++进行转换。
UTF-8和UTF-8-BOM有什么区别,后面再比较。
下面是把文件转成utf-8-bom后,显示正常。窗口汉字所在的文件一直都没有进行转换。


在qt中关于编码的两个菜单:
编辑-》selected encoding
工具-》选项-》文本编辑器-》行为-》文件编码
这里面我也选择了 如果编码是utf -8则添加 ,但是好像没有起作用,先不管了,最后还是手动转成utf-8-bom
资料:QT中出现的中文乱码问题及其解决方案_qt6 fromlocal8bit乱码-优快云博客
QT中Ui文件运行中文显示乱码处理办法_ui->conbtn->settext("关闭");乱码-优快云博客
2.编译、构建目录
1.不使用影子目录当做构建目录,pro文件也不进行设置,会默认使用源文件文件夹当做输出构建目录。
2.使用影子目录:
勾选影子目录设置好路径+pro文件设置。qmake后,会生成一个和源文件目录同级的文件夹。
详细过程
a.设置构建目录路径:
相对路径(推荐):
../build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Type}
绝对路径:
%{sourceDir}/build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Type}
b.配合pro进行设置,
OUT_PWD:当前构建目录(勾选的影子目录或者源文件目录)
PWD:当前源文件目录
//.pro文件
# 编译输出目录设置-----------------------------
#输出源程序目录和构建目录
#message("Source Directory: $$_PRO_FILE_PWD_")
#message("Output Directory: $$OUT_PWD")
# 检查是否使用影子构建
# 但是有时候没有生效,不输出错误,不阻止构建
equals(_PRO_FILE_PWD_, OUT_PWD) {
error("You must use shadow build. Please select a build directory outside the source directory.")
}
# 设置构建目录
BUILD_DIR = $$OUT_PWD
# 根据构建类型设置子目录
CONFIG(debug, debug|release) {
BUILD_SUBDIR = debug
} else {
BUILD_SUBDIR = release
}
## 设置输出目录,子文件夹更细分
#DESTDIR = $$BUILD_DIR/$$BUILD_SUBDIR/bin
#OBJECTS_DIR = $$BUILD_DIR/$$BUILD_SUBDIR/obj
#MOC_DIR = $$BUILD_DIR/$$BUILD_SUBDIR/moc
#RCC_DIR = $$BUILD_DIR/$$BUILD_SUBDIR/rcc
#UI_DIR = $$BUILD_DIR/$$BUILD_SUBDIR/ui
# 设置输出目录
DESTDIR = $$BUILD_DIR/$$BUILD_SUBDIR/bin # 可执行文件输出目录
OBJECTS_DIR = $$BUILD_DIR/$$BUILD_SUBDIR # 中间对象文件目录
MOC_DIR = $$BUILD_DIR/$$BUILD_SUBDIR # moc文件目录
RCC_DIR = $$BUILD_DIR/$$BUILD_SUBDIR # 资源文件编译目录
UI_DIR = $$BUILD_DIR/$$BUILD_SUBDIR # UI文件编译目录
# 可选:为 debug 版本添加后缀
CONFIG(debug, debug|release) {
TARGET = $$join(TARGET,,,_d)
}
# ------------------------------------------------
1399

被折叠的 条评论
为什么被折叠?



