关于Qt中project文件中的变量配置,可以查看Qt帮助文档中的variable变量手册
1.DEFINES
1.1 在代码文件作为判断条件
例如:
DEFINES += USE_MY_STUFF
然后就可以在代码中使用:
#ifdef USE_MY_STUFF
// TODO
#else
// TODO
#endif
1.2 在.pro 中不同的条件调用不同的文件
DEFINES += QT_DEPRECATED_WARNINGS RUN_MINGW_32_LIB
if(contains(DEFINES,RUN_MINGW_32_LIB)){ win32:CONFIG(release, debug|release): LIBS += -L$$PWD/thirdpart/fontIcons_mingw_32/ -lfonticons else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/thirdpart/fontIcons_mingw_32/ -lfonticonsd INCLUDEPATH += $$PWD/thirdpart/fontIcons_mingw_32 DEPENDPATH += $$PWD/thirdpart/fontIcons_mingw_32 }else{ win32:CONFIG(release, debug|release): LIBS += -L$$PWD/thirdpart/fontIcons_mingw_64/ -lfonticons else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/thirdpart/fontIcons_mingw_64/ -lfonticonsd INCLUDEPATH += $$PWD/thirdpart/fontIcons_mingw_64 DEPENDPATH += $$PWD/thirdpart/fontIcons_mingw_64 }
2.DEPENDPATH
指定查看解决依赖关系的目录列表,当包含文件时使用。
例如:
DEPENDPATH += . forms include qrc sources
3.INCLUDEPATH
指定编译项目时应该被搜索的#include目录。
例如:
INCLUDEPATH = c:/msdev/include d:/stl/include
如果路径包含空格,需要使用引号包含。
win32:INCLUDEPATH += "C:/mylibs/extra headers"
unix:INCLUDEPATH += "/home/user/extra headers"
4.LIBS
-L指定库的目录,而-l指定库的名字(如果是在Linux下,则去掉lib和后缀名,windows下去掉后缀名即可),静态库、动态库都是一样的。如果使用相对路径,而库又想要被程序找的到,那么这个相对路径指的是执行程序生成的位置于库的相对路径,因为QT编译时会把生成路径放在和项目相同目录下的另一个文件夹中,那么也就是说,我们必须把库拷贝到编译生成的目录下才行。
例如:
win32:LIBS += c:/mylibs/math.lib
unix:LIBS += -L/usr/local/lib -lmath
如果路径包含空格,需要使用引号包含路径。
win32:LIBS += "C:/mylibs/extra libs/extra.lib"
unix:LIBS += "-L/home/user/extra libs" -lextra
4.RC_ICONS
仅适用于Windows,指定的图标应该包含在一个生成的.rc文件里。如果RC_FILE 和RES_FILE变量都没有设置这才可利用。
例如:
RC_ICONS = myapp.ico
5.PWD
表示当前.pro文件所在的路径。
INCLUDEPATH += $$PWD/../mydll
6.OUT_PWD
表示输出的“Makefile”所在的路径(通常在编译后生成的.exe文件的上层目录里)。
LIBS += -L$$OUT_PWD/../funDll/ -lfunDll
7.CONFIG
CONFIG 变量用于指定工程配置和编译器选项,通常取debug,release,dll等值,也可以自定义选项值, CONFIG变量的每个选项都可以用于条件判断。
CONFIG += qt5
qt5{
LIBS += -lmydll_qt5
}else{
LIBS += -lmydll
}
8.debug编译后面加d
win32:CONFIG(debug,debug|release):TARGET = fonticonsd
else:win32:CONFIG(release,debug|release):TARGET = fonticons