概述
该篇博客主要总结梳理Qt项目在pro文件中如何实现条件编译。
通过定义宏
在pro文件中可以通过DEFINES定义宏变量,如下述代码所示:
DEFINES += TEST
当在pro文件中定义上述宏后,可以通过以下代码判断是否定义该宏:
contains(DEFINES, TEST)
{
message('-->>(DEFINES, TEST)')
}
else
{
message('-->>(DEFINES, TEST) nothing')
}
若在pro文件中添加上述代码,编译时在qt creator的应用程序输出窗口中看到–>>(DEFINES, TEST。由此可以看出通过宏定义和contains可以实现条件编译。如下述代码所示:
DEFINES += static
if(contains(DEFINES, static)) {
CONFIG += static
}else{
CONFIG += shared
}
上述代码中通过定义宏static,实现添加配置从而控制编译静态库。
通过CONFIG配置
CONFIG 变量用于指定工程配置和编译器选项,通常取debug,release,dll等值,也可以自定义选项值, CONFIG变量的每个选项都可以用于条件判断。
CONFIG += static
static {
CONFIG += static
} else {
CONFIG += shared
}
cpp中做判断
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
#ifndef TEST
qDebug() << "no define";
#else
qDebug() << "define";
#endif
}
|