QT pro项目工程的条件编译
QT pro项目工程的条件编译
前言
项目场景:项目中用到同一型号两个相机,同时导入两个版本有冲突,编译不通过, 故从编译就区分相机导入调用,使用宏区分
一、定义宏
在pro文件中定义宏:
DEFINES += USE_CamV1
二、导入判断换
说明: 预先将两个版本的SDK 通过 pri 文件导入管理
1.pri文件判断
代码如下(示例):
if(contains(DEFINES,USE_CamV1)){
include($$PWD/CamV1/CamV1.pri)
message('-->>(DEFINES,CamV1)')
}
else{
include($$PWD/CamV2/CamV2.pri)
message('-->>(DEFINES,CamV2) ')
}
2.代码判定
利用宏区分头文件导入、类声明
代码如下(示例):
#ifdef USE_CamV1
class CamV1Logic;
QSharedPointer<CamV1Logic> _camV1Ctl= nullptr;
#else
class CamV2Logic;
QSharedPointer<CamV1Logic> _camV2Ctl= nullptr;
#endif