我们知道Qt的pro工程文件中可以编写编译条件,根据不同的条件生成不同的编译指令,常用的是根据系统的不同包含不同的源文件,如
win32 {
HEADERS += windows.h
}
linux {
HEADERS += linux.h
}
除了源文件,链接的lib文件也需要在pro中指定,而在windows平台中,可选的编译器有msvc和mingw两种,且这两种编译器的库文件不能通用,那么我们怎么在pro文件中根据编译器的不同包含不同的lib库文件呢,pro文件中我们可以通过CONFIG+=的形式定义自己的条件,如增加
CONFIG += mingw-cc
我们就可以像用这个来做判断
mingw-cc {
LIBS += -Lmingw -ltest
} else {
LIBS += -Lvs -ltest
}
这样就可以连接不同的lib库文件了,但是需要手动更改CONFIG设置,那么Qt有没有内置的表示当前编译器类型的CONFIG变量呢,网上没找到完整的qmake或pro文件的说明文档,我们怎么才能知道CONFIG的预定义值都有啥呢?
我们知道pro中可以通过$${var}的形式引用预定义变量,而pro文件最终会通过qmake编译成makefile文件,这个makefile的内容是会落盘的,是我们能看见的,那么我们增加如下定义
DEFINES += Q_CONFIG=$${CONFIG}
编译一下,看生成的m