qt-- 学习笔记4.6(编译,运行,调试)

编译输出文件夹选择:   ..\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)
}

# ------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值