Qt 项目工程pro文件 参数

Qt之工程文件

在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:

1、注释

从“#”开始,到这一行结束。

2、QT+

这是添加QT项目需要的模块的,若项目中要排除某个模块,也可用QT -= 配置项。

3、模板变量 TEMPLATE

这个配置项确定qmake为这个应用程序生成哪种makefile 。有下面五种形式可供选择:

1)app : 建立一个应用程序,这个是默认值,若模块项未指定,将默认使用此项;

2)lib : 建立一个库;比如:动态库、静态库文件

3)vcapp: 建立一个应用程序的VisualStudio项目文件;

4)vclib : 建立一个库的VisualStudio项目文件;

5)subdirs : 这是一个特殊的模板,可以创建一个工程集目录

subdirs 举例:

TEMPLATE = subdirs

SUBDIRS =\
        raknet\
        onetengine \
        omisc \
        testDebugShow
 
onetengine.depends = raknet omisc
testDebugShow.depends = omisc

#CONFIG += ordered

1、TEMPLATE=subdirs 这是固定写法,声明是做工程集目录的
2、SUBDIRS:是指明目录中有哪些项,可以嵌套另一个subdirs型的pro
3、接下来可以详细定义其中的项目,如 xxx.depends=yyy,表示左边的依赖=后面的项目

.subdir :指定子项的目录,不使用子项本身的名字.
.file:明确指定该子项使用的pro文件,默认是根据名字自动找的,该项不和.subdir同时使用
.condition :指定要生成的子项目必须为true的bld.inf定义。仅在Symbian平台上可用。
.depends :该子项依赖指定的子项,只在使用makefiles的平台有效
.makefile:该子项的makefile,只在使用makefiles的平台有效
.target:该子项的TARGET,只在使用makefiles的平台有效

1、使用 subdirs =a b c d声明的其实是4个子项的名字
2、默认不多做说明的话,qmake 根据名字自动去找子目录,启用子目录中的pro文件(名字优先匹配).
3、如果有特别说明,比如: a.subdir=./z 或者 a.file=./z/z.pro 就可以不受名字限制。
4、至于.makefile,应该是你混用第三方库的时候才有必要手动指定使用的makefile
5、. target 可以在子pro中指定,除非你觉得这里比较统一方便修改

  1. TARGET

这个配置项用来指定最后生成的目标应用程序的名称。名字不做修饰(不加.a/.lib/.dll)的好处是让qt帮我们加,在不同平台不用我们考虑差别.

  1. CONFIG +

用来告诉qmake关于应用程序的配置信息,使用+=表示在现有的配置上添加,这样会更安全。比如,CONFIG += qt warn_on release 其具体的意义为:

qt :告诉qmake此程序是使用qt来连编的。即qmake在连接、为编译添加所需包含路径时会考虑qt的库;warn_on :告诉qmake要将编译器设置为输出警告信息形式;release :告诉qmake应用程序必须被连编为一个可发布的应用程序。开发过程中,也可以使用debug;

6、控制输出目录

6.1、UIC_DIR += :
用来指定uic命令,将.ui文件转化为ui_*.h文件存放的目录。

6.2、RCC_DIR += :
用来指定rcc命令,将.qrc文件转换成qrc_*.h文件存放的目录。

6.3、MOC_DIR += :
用来指定moc命令,将含有Q_OBJECT的头文件转换成标准.h文件存放的目录。

6.4、OBJECTS_DIR += :
用来指定目标文件obj的存放目录。

6.5、DESTDIR += :
用来指定目标的生成路径。

7. DEPENDPATH += :

列出依赖项所在的路径。当处理included文件时会使用该项。

8. INCLUDEPATH += :

列出工程中 #include 项需要搜索的路径,即头文件的路径。

多个路径用空格隔开。如果路径本身包含空格,则需要用双引号引起来。

9. CODECFORSRC += :

源文件编码方式

CODECFORSRC = GBK

10、源代码文件目录

10.1、FORMS += :
用来指定工程中的ui文件。

10.2、 HEADERS += :
用来指定工程中所包含的头文件。

10.3、SOURCES += :
用来指定工程中包含的源文件。

10.4、RESOURCES += :
用来指定工程中所包含的资源文件。

10.5、RC_FILE = xxx.icns
RC_FILE = myapp.rc

IDI_ICON1 ICON “myappico.ico” windows

或者 直接使用

RC_ICONS = myappico.ico windows

或者

ICON = myapp.icns mac

11、LIBS += :

指定工程里需要链接的库文件(.lib或.dll)。根据不同的版本可以分为两种形式:

Release: LIBS += -L folder Path

//release版本引入的

lib

文件

Debug: LIBS += -L folder Path

​ //debug版本引入的

lib

文件
通常用Unix风格,大写的L表示“路径”,小写的l表示“库文件名字”。如

unix:LIBS += -``**L**``/usr/local/lib -``**l**``math
win32:LIBS += c:/mylibs/math.lib

12、DEFINES += :

qmake添加该字段指定的全局宏定义。VS中也有类似的全局宏定义,在.dll工程中经常用到,来指定是 dllexport 还是 dllimport .

屏蔽告警信息和调试输出

DEFINES +=  QT_NO_WARNING_OUTPUT\
            QT_NO_DEBUG_OUTPUT

自定义宏

DEFINES += FUNDLL_LIBRARY

1
在头文件中使用上述宏定义:

#if defined(FUNDLL_LIBRARY)
#define FUNDLLSHARED_EXPORT __`declspec`(dllexport)
#else
#define FUNDLLSHARED_EXPORT __declspec(dllimport)
#endif

13、变量PWD

表示当前.pro文件所在的路径。

INCLUDEPATH += $$PWD//mydll

14、变量OUT_PWD

表示输出的“Makefile”所在的路径(通常在编译后生成的.exe文件的上层目录里)。

LIBS += -L$$OUT_PWD//funDll/ -lfunDll

15. 跨平台处理信息

跨平台处理信息也要写在.pro文件中, 其示例如下:

win32{
}
unix{
}

16 pri文件

使用pri文件可以进行工程模块化管理

新工程中,新建一个xxx.pri文件,在pro文件中,include这个pri文件,
include (xxx.pri) // 使用像一个函数

​ pri文件并没有那么神秘,它完全可以被看作一个子 Pro 文件。就像头文件之间的包含关系一样,你可以将pri文件包含在Pro文件中,那么在Pro就可以运用到pri文件下内容了。只不过不能在pri文件中包含Pro文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值