自学内容网 自学内容网

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

1.字符编码问题

问题:程序或者注释里面有汉字,就会有报错的可能,本来是正常编译运行,复制到另一个地方,或者上传到github再下载下来,都有报错的可能。

解决:文件开头 添加 #pragma execution_character_set("utf-8")  在编译的时候就声明本文件是什么编码。然后再编译就不会报错了

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)
}

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


原文地址:https://blog.csdn.net/code_snow/article/details/142705978

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!