如何在Qmake中根据所选Kit配置不同编译选项?
实现根据所选Kit执行特定配置的方法
方法1:通过编译器版本/类型直接判断
如果两个Kit的编译器类型(如GCC vs MSVC)或版本号存在差异,可直接利用编译器内置的预定义宏或qmake提供的编译器变量区分:
区分不同GCC版本示例:
# 使用GCC 9及以上版本时 greaterThan(QMAKE_GCC_MAJOR, 8): { DEFINES += VAL } # 使用GCC 8及以下版本时 lessThan(QMAKE_GCC_MAJOR, 9): { DEFINES -= VAL }
区分MSVC与GCC示例:
win32-msvc* { DEFINES += VAL } unix-g++ { DEFINES -= VAL }
方法2:给Kit添加自定义qmake变量(更灵活)
若需直接绑定到特定Kit,可通过Qt Creator为每个Kit设置专属变量:
- 打开Qt Creator,进入工具 > 选项 > 构建和运行 > Kits
- 选中第一个Kit,切换到环境标签页,点击“添加”按钮:
- 变量名:
SELECTED_KIT,值:first_kit
- 变量名:
- 选中第二个Kit,重复添加操作:
- 变量名:
SELECTED_KIT,值:second_kit
- 变量名:
- 在pro文件中通过该变量判断:
SELECTED_KIT == first_kit { DEFINES += VAL } SELECTED_KIT == second_kit { DEFINES -= VAL }
方法3:利用Kit名称判断
如果Kit的名称唯一,可直接使用Qt Creator自动传入的QT_CREATOR_KIT_NAME变量判断:
QT_CREATOR_KIT_NAME == "My First Kit" { DEFINES += VAL } QT_CREATOR_KIT_NAME == "My Second Kit" { DEFINES -= VAL }
注意:Kit名称需与Qt Creator中显示的完全一致,包括空格和大小写。
内容的提问来源于stack exchange,提问作者kaernk
相关产品推荐
相关产品推荐

