QMake的基本用法

QMake是和CMake类似的项目组织工具,不过比CMAKE简单不少

官方文档:https://doc.qt.io/qt-5/qmake-manual.html

本地的Qt安装目录也有,和官方文档一致

1.QMake添加源/头/UI等文件
1
2
3
4
5
6
7
8
9
10
11
12
13
SOURCES += \
$$files(UserAPP/Src/*.cpp) \
$$files(UserAPP/Src/*.c) \
# main.cpp \
# mainwindow.cpp

HEADERS += \
$$files(UserAPP/Inc/*.h)
# mainwindow.h
INCLUDEPATH += UserAPP/Inc/

FORMS += \
# mainwindow.ui

可以用files()这个函数得到某路径下所有指定类型的文件,在添加文件时很方便

2.QMake添加第三方库

跟CMAKE一样,添加第三方库时主要要做三件事

  • QMake中添加.lib文件

  • .dll文件拷贝到可执行文件路径下

  • QMake中添加头文件路径,使得代码里面#include 写的可以更简单一些


QMake通过LIBS这个变量存放第三方库的路径和指定第三方库的文件

  • 在存放路径时,路径前加上-L

  • 存放库文件是,文件名前加上-l,且不加后缀,如果写在一行,每个文件都得加-l

  • 正常情况下,如果DLL文件和.lib在同一个路径,且用-l添加这个库,那么.dll文件就不用放到.exe文件夹下了,但有的.dll文件还是得放到.exe文件里面,不知道咋回事

1
2
3
4
5
INCLUDEPATH += $${MATH_LIB_PATH}/include
INCLUDEPATH += $${MKLDNN_PATH}/include

LIBS += -L$${MATH_LIB_PATH}/lib/ -lmklml -llibiomp5md
LIBS += -L$${MKLDNN_PATH}/lib/ -lmkldnn
3.QMake自定义变量

QMake中,对于变量的赋值很简单,但是取值需要加上$${}

1
2
PADDLE_LIB = D:/paddle_inference/
message($${PADDLE_LIB})
4.预处理宏定义

与CMake的add_definitions("/DGOOGLE_GLOG_DLL_DECL=")对应的QMake语法是DEFINES += GOOGLE_GLOG_DLL_DECL=