在Qt平台下开发时我们经常使用如操作系统判断、编译器判断等变量来进行跨平台项目的开发,QMAKE也允许我们自定义全局条件编译变量。
pro文件中定义变量并判断:
DEFINES += CONDITION
contains(DEFINES, CONDITION){
message(Exist.)
}else{
message(Not exist.)
}
以上 QMAKE 规则将在执行 qmake 时打印 “Exist.”,注释掉 DEFINES += CONDITION 将打印“Not exist.”
DEFINES出的变量可以在工程下的所有源文件中使用,用于 c/c++ 的条件编译,如:
#ifdef CONDITION
/* do something... */
#else
/* do something... */
#endif
在Qt开发中,为了实现跨平台兼容性,通常会用到条件编译。QMAKE允许开发者在.pro文件中定义全局变量进行条件判断。例如,通过`DEFINES+=CONDITION`设置变量,然后使用`contains(DEFINES, CONDITION)`进行判断。当条件满足时,会在编译时打印Exist. 否则打印Notexist.。这些定义的变量可在C/C++源文件中通过`#ifdef`预处理器指令进行条件编译,从而实现不同平台下的差异化代码处理。
Qt pro文件中定义全局条件编译变量并使用&spm=1001.2101.3001.5002&articleId=123616733&d=1&t=3&u=1a38602bd4ee4e5ab40d72406b215d44)
1316

被折叠的 条评论
为什么被折叠?



