QT pro项目工程的条件编译

QT pro项目工程的条件编译

前言

项目场景:项目中用到同一型号两个相机,同时导入两个版本有冲突,编译不通过, 故从编译就区分相机导入调用,使用宏区分

一、定义宏

在pro文件中定义宏:

cpp 复制代码
DEFINES += USE_CamV1

二、导入判断换

说明: 预先将两个版本的SDK 通过 pri 文件导入管理

1.pri文件判断

代码如下(示例):

c 复制代码
 if(contains(DEFINES,USE_CamV1)){
    include($$PWD/CamV1/CamV1.pri)
    message('-->>(DEFINES,CamV1)')
}
else{
    include($$PWD/CamV2/CamV2.pri)
    message('-->>(DEFINES,CamV2) ')
}

2.代码判定

利用宏区分头文件导入、类声明

代码如下(示例):

c 复制代码
#ifdef USE_CamV1
class CamV1Logic;
QSharedPointer<CamV1Logic> _camV1Ctl= nullptr;
#else
class CamV2Logic;
QSharedPointer<CamV1Logic> _camV2Ctl= nullptr;
#endif
相关推荐
前端青山1 分钟前
JavaScript闭包的深度剖析与实际应用
开发语言·前端·javascript·前端框架·ecmascript
凌小添16 分钟前
Python教程丨Python环境搭建 (含IDE安装)——保姆级教程!
开发语言·python·教程
代码驿站52036 分钟前
PHP语言的数据库编程
开发语言·后端·golang
花菜会噎住1 小时前
Python 模块,包(详解)
开发语言·python
kittygilr1 小时前
matlab中几个取整函数的区别
开发语言·matlab
我不是你的灯笼2 小时前
Go语言的 的垃圾回收(Garbage Collection)基础知识
开发语言·后端·golang
高山莫衣2 小时前
Python实现批量找出两个文件夹中同名文件
开发语言
xweiran2 小时前
Spring源码分析之事件机制——观察者模式(二)
java·开发语言·spring·观察者模式·底层源码
深鱼~2 小时前
【多线程初阶篇¹】线程理解| 线程和进程的区别
java·开发语言·人工智能·深度学习·计算机视觉
shinelord明2 小时前
【再谈设计模式】观察者模式~对象间依赖关系的信使
开发语言·数据结构·观察者模式·设计模式·软件工程