Qt 之 pro文件介绍及注意点
文章目录
- 用法详解
- 1. 注释
- 2. 模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:
- 3. 指定生成的应用程序放置的目录
- 4. 指定生成的应用程序名
- 5. 配置信息
- 6. 平台相关性处理
- 注意点 LIBS += 用法
- 注意:
- 附《msvc、mingw分别编译动态库与静态库文件名区别》:
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:
用法详解
1. 注释
从“#”开始,到这一行结束。
2. 模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:
TEMPLATE = app
A> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
B> lib - 建立一个库的makefile。
C> vcapp - 建立一个应用程序的VisualStudio项目文件。
D> vclib - 建立一个库的VisualStudio项目文件。
E> subdirs -这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。
3. 指定生成的应用程序放置的目录
DESTDIR += ../bin
4. 指定生成的应用程序名
TARGET = pksystem
5. 配置信息
CONFIG用来告诉qmake关于应用程序的配置信息。
CONFIG+= qt warn_on release
在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这样做比使用“=”那样替换已经指定的所有选项是更安全的。
A> qt部分告诉qmake这个应用程序是使用Qt来连编的。这也就是说qmake在连接和为编译添加所需的包含路径的时候会考虑到Qt库的。
B> warn_on部分告诉qmake要把编译器设置为输出警告信息的。
C> release部分告诉qmake应用程序必须被连编为一个发布的应用程序。在开发过程中,程序员也可以使用debug来替换release
指定uic命令将.ui文件转化成ui_*.h文件的存放的目录
UI_DIR += forms
指定rcc命令将.qrc文件转换成qrc_*.h文件的存放目录
RCC_DIR += ../tmp
指定moc命令将含Q_OBJECT的头文件转换成标准.h文件的存放目录
MOC_DIR += ../tmp
#指定目标文件(obj)的存放目录
OBJECTS_DIR += ../tmp
#程序编译时依赖的相关路径
DEPENDPATH += . forms include qrc sources
#头文件包含路径
INCLUDEPATH += .
#信息输出
message($$PWD)
message($$DESTDIR)
message($$TARGET)
#源文件编码方式
CODECFORSRC = GBK
#工程中包含的头文件
HEADERS += include/painter.h
#工程中包含的.ui设计文件
FORMS += forms/painter.ui
#工程中包含的源文件
SOURCES += sources/main.cpp sources/painter.cpp
#工程中包含的资源文件
RESOURCES += qrc/painter.qrcLIBS += -L folderPath //引入的lib文件的路径 -L:引入路径
Release:LIBS += -L folderPath // release 版引入的lib文件路径
Debug:LIBS += -L folderPath // Debug 版引入的lib 文件路径
DEFINES += XX_XX_XXX //定义编译选项,在.h文件中就可以使用 :#ifdefine xx_xx_xxx
RC_FILE = xxx.icns
6. 平台相关性处理
我们在这里需要做的是根据qmake所运行的平台来使用相应的作用域来进行处理。为Windows平台添加的依赖平台的文件的简单的作用域看起来就像这样:
win32 {undefined
SOURCES += hello_win.cpp }
====================================================================================================================
当你已经创建好你的项目文件,生成Makefile就很容易了,你所要做的就是先到你所生成的项目文件那里然后输入:
Makefile可以像这样由“.pro”文件生成:
qmake -o Makefile hello.pro
对于VisualStudio的用户,qmake也可以生成“.dsp”文件,例如:
qmake -tp vc xxx.pro
当TEMPLATE =subdirs 时,
qmake -r -tp vc xxx.pro
注意点 LIBS += 用法
用法:LIBS += -Lzzz -lxxx -lyyy
zzz:库路径
xxx、yyy:库文件
库路径可以有以下的形式:
-L. 表示 .pro所在目录
-L$$_PRO_FILE_PWD_/ 表示 .pro所在目录
-L$$PWD/ 表示 .pro所在目录
-LC:/abc/ 表示C:/abc/
库文件可以有以下的形式:
若.pro所在目录lib下有解码库需要被链接,msvc版本为“VideoDecoder.lib”,mingw版本为“libVideoDecoder.a”。
- 不加-l时,需要写库文件全名:
LIBS += -L$$PWD/lib VideoDecoder.lib
或
LIBS += -L$$PWD/lib libVideoDecoder.a
这样写死,不利于多编译器编译,不推荐。
- 加-l时,可以将不同编译器库文件名差异屏蔽掉
假设链接msvc库,则只需要去掉文件后缀(一般是.lib):
LIBS += -L$$PWD/lib -lVideoDecoder
假设链接mingw/gcc库,则需要去掉文件前缀"lib",和后缀(一般是.a):
LIBS += -L$$PWD/lib -lVideoDecoder
这样不管在哪个编译器下,都能保证命令一致。
注意:
请牢记msvc库只去后缀,mingw库去前缀和后缀。
因为我遇到一个问题,使用msvc编译工程,工程中调用了boost线程库,boost使用msvc编译为静态库,这个静态线程库
的名字比较坑“libboost_thread-vc141-mt-gd-x64-1_71.lib”,按照我们一贯的想法,肯定是去掉前lib,去掉后缀.lib,像这样:
LIBS += -LC:/Boost_msvc_static/lib/ -lboost_thread-vc141-mt-gd-x64-1_71
死活编译不过,找不到库文件。此时,你只要想起来链接msvc库只去后缀,像这样:
LIBS += -LC:/Boost_msvc_static/lib/ -llibboost_thread-vc141-mt-gd-x64-1_71
编译就通过了。
附《msvc、mingw分别编译动态库与静态库文件名区别》:
msvc动态库:test.dll,test.lib
msvc静态库:test.lib
mingw动态库:test.dll、libtest.a
mingw静态库:libtest.a
Qt 之 pro文件介绍及注意点相关推荐
- Qt 中pro文件换行注意的问题
Qt 中pro文件换行必须用 \,直接按回车换行会导致程序不正确.如下: CONFIG(debug, debug|release) {OBJECTS_DIR += $$PWD/../debugDES ...
- 深入理解Qt的.pro文件
深入理解Qt的pro文件 模板变量 生成目录 生成的应用程序名 编译选项 目标文件目录 包含头文件 包含源文件 包含资源文件 附加头文件包含 链接库 预编译宏 平台相关性处理 指定来自ui文件位置 指 ...
- Qt中pro文件如何从相对路径导入库
Qt中pro文件如何从相对路径导入库 Qt工程中有lib.dll.a.so等文件需要导入时,有时需要指定路径.指定绝对路径换到其他机器编译时会不大方便.那么,如何在Qt pro文件中通过相对路径导入库 ...
- qt中.pro文件详细说明
工程上需要使用QT框架进行项目开发,.pro文件里面的具体配置方式比较模糊.详细整理文件里各配置项的含义,并对其编写方法进行归纳总结. 目录 1.配置项说明 1.1.注释 # 1.2.添加/排除QT项 ...
- [qt creator]pro文件的设置
1. 怎么使exe输出到指定目录 DESTDIR =$$PWD/../bin 2.QT中默认不选中Shadow build设置方法 3.test.pro文件常用的设置 TEMPLATE = app C ...
- 【QT】震惊,一个由于QT只有.pro文件引起的世界难题。本文解决QT只有.pro的问题以及在项目中添加文件时,发生了一个编码错误的问题。
震惊,一个由于QT只有.pro文件引起的世界难题!! 新手必看,避雷!!!不要相信网上那些人,他们文章中看不中用,正所谓印证了网络上的一句话:一人创作,万人模仿啊.和某手某音差不多!!# 概述:问题的 ...
- QT中PRO文件写法的详细介绍
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释 从"#"开始,到这一行结束. 2.模板变量告诉q ...
- QT中PRO文件写法的详细介绍,很有用,很重要!
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下: 1. 注释 从"#"开始,到这一行结束. 2.模板变量告诉q ...
- Qt中 .pro 文件和 .pri 文件介绍
*.pro 这是一个典型的Qt示例程序的.pro文件(propriprfprl.pro): TEMPLATE = app CONFIG += QT QT += core guiTARGET = pro ...
最新文章
- Sql — CTE公用表表达式和With用法总结
- Java中的split函数
- 2021-05-10 如何修改Docker的默认镜像存储位置
- C# 调用cmd执行指令
- Windows 2008之Hyper-V安装攻略
- 有哪些适合大学生浏览的网站?
- iOS-入门HelloWorld
- HAUT校赛--某科学的打麻将
- c#读取生成excel表格文件xls、xlsx格式文件
- 手游反抗战兴起,《原神》打响“起义“第一枪
- timesten mysql_TimesTen进程种类详解
- 金域医学与华为云联合,AI辅助宫颈癌筛查方案获得阶段性突破
- Hulugans看什么 | 50多部迪士尼经典动画片带你重温童年
- 大学物理实验长度的测量实验报告_大学物理实验长度测量法实验报告完整版
- html5 基本知识
- 36-sparkstreaming
- 2020-03-18HTML
- ESP8266设置静态IP入网
- sentinel 控制台讲解-降级规则-降级策略:RT
- Ubuntu系统---安装搜狗输入法