Qt--qmake
- 1 简介
- 2 配置
-
- 2.1 注释
- 2.2 模板变量
- 2.3 生成目录
- 2.4 生成的应用程序名
- 2.5 编译选项
- 2.6 目标文件目录
- 2.7 工程中包含的头文件
- 2.8 工程中包含的源文件
- 2.9 工程中包含的资源文件
- 2.10 第三方库
- 2.11 预编译宏
- 2.12 平台相关性处理
- 2.13 指定图标
- 2.14 兼容老版本
- 2.15 配置信息
- 2.16 调试信息
- 3
- 参考
1 简介
- qmake 是一个能跨平台的快速创建工程的简易工具。
- qmake 可以在 Qt 或者其他 IDE 中根据项目(.pro)文件快速生成 Makefile。
- qmake 兼容 Microsoft Visual Studio。
2 配置
2.1 注释
以”#”开始的行,直到结束
2.2 模板变量
告诉qmake生成哪种makefile
TEMPLATE = app
- app -表示该工程建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用
- lib - 表示该工程建立一个库的makefile
2.3 生成目录
指定生成的可执行程序的目录,可以绝对和相对路径
DESTDIR += ../bin
2.4 生成的应用程序名
TARGET = qtest
2.5 编译选项
增添或者移除某个模块
比如增添C++11和console支持,Qt的各模块也在这里面添加
CONFIG += console c++11 network
CONFIG -= qt
注:可以用空格分隔或者”\”来隔行
2.6 目标文件目录
obj文件存放的目录,可以绝对或相对路径
OBJECTS_DIR += ../tmp
2.7 工程中包含的头文件
HEADERS += \Monitor/include/ArMgr.h \Monitor/include/ArPose.h \Monitor/include/Socket.h \
注:只要qtcreator目录树里add进去了就自动添加
2.8 工程中包含的源文件
SOURCES += mytest.cpp\main.cpp
2.9 工程中包含的资源文件
表示本工程包含的资源文件
RESOURCES += qrc/painter.qrc
注:只要qtcreator目录树里add进去了就自动添加,更改pro文件会同步更新qtcreator里的目录树,但不会影响硬盘上的资源文件
2.10 第三方库
头文件
INCLUDEPATH += ./OpenCV/include/opencv\./OpenCV/include/opencv2
- 可以用绝对或相对路径
- 相对路径中./可以省略
- 路径中不允许出现空格
库文件
对于静态库(.lib, .a)以及动态库.so
LIBS += D:/OpenCV/lib/opencv.a
LIBS += -LD:/OpenCV/lib/ -lopencv
LIBS += $$PWD/OpenCV/lib/libopencv.lib
可以用-L指定目录,-l指定库的名称(无需后缀,.lib,.a, .so都适用)
可以直接通过绝对路径和相对路径指定库的完整path(需后缀,.lib,.a, .so都适用),相对路径用$$pwd前缀,路径不允许空格
LIBS += somepath 这个可以多行写,也可以用“\”隔行
最后一种只适用于windows静态库
对于linux链接库, 比如opencv项目用make编译出的libopencv.a或者libopencv.so,链接的时候必须写 -lopencv ,写项目的名字而不是库的文件名字
对于动态库dll,必须拷贝到exe执行目录或者在环境变量里配置路径
2.11 预编译宏
DEFINES += USE_OPENSSL\CURL_STATICLIB
类似于vs里面在工程里设置预编译选项
2.12 平台相关性处理
根据qmake所运行的平台来使用相应的作用域来进行处理
win32
{
SOURCES += 1.cpp
}
else
{
SOURCES += 2.cpp
}
2.13 指定图标
如果RC_FILE 和RES_FILE变量都没有设置这才可利用
RC_ICONS = logo.ico
2.14 兼容老版本
如果QT_MAJOR_VERSION大于4(也就是当前使用的Qt5及更高版本)需要增加widgets模块。如果项目仅需支持Qt5,也可以直接添加“QT += widgets”一句。不过为了保持代码兼容,最好还是按照QtCreator生成的语句编写。
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
2.15 配置信息
CONFIG用来告诉qmake关于应用程序的配置信息。
CONFIG += c++11 //使用c++11的特性
2.16 调试信息
QMAKE_CXXFLAGS += -g
3
参考
1、qmake Manual–官方
2、t工程pro文件的简单配置(尤其是第三方头文件和库)