首页 资讯 > > 正文

QT中如何识别编译器和实现条件编译以及设定目标文件生成路径

2023-04-09 15:02:49 来源:QT教程 分享到:

一、识别编译器

win32-msvc*{DEFINES += COMPILE_MSVC}else{win32-g++{DEFINES += COMPILE_MINGW32DEFINES += PJ_AUTOCONF=1DEFINES += PJ_IS_BIG_ENDIAN=0DEFINES += PJ_IS_LITTLE_ENDIAN=1}else{DEFINES += COMPILE_LINUXif(contains(QMAKE_CXX,g++)){DEFINES += COMPILE_UBUNTU}if(contains(QMAKE_CXX,aarch64-linux-gnu-g++)){DEFINES += COMPILE_KYLIN}}}

对于win32-msvc以及win32-g++

QT会在编译的时候将这个选项加入,在pro文件中可以直接拿来识别


(资料图片仅供参考)

在linux下可以直接通过查看编译器

contains(QMAKE_CXX,g++) //X86_64平台

contains(QMAKE_CXX,aarch64-linux-gnu-g++) //aarch64平台(飞腾加银河麒麟),因为是交叉编译所以QMAKE是用aarch64-linux-gnu-g++编译出来的

这样就能精确的知道在哪个平台哪个编译器

二、条件编译

其中DEFINES += COMPILE_MSVC

DEFINES += COMPILE_MINGW32

DEFINES += COMPILE_LINUX

DEFINES += COMPILE_KYLIN

在pro中使用DEFINES来实现条件编译

Qt的pro文件中使用DEFINES 来实现类似gcc -D的条件编译功能。

在生成的makefile中,可以看到编译宏

DEFINES = ... -COMPILE_MSVC...CXXFLAGS = ... $(DEFINES) ......

在整个工程中都可以使用这些宏

#if defined(COMPILE_MSVC)#else#include \"play_mp4.h\"#include \"CLog_c.h\"#endif
#if defined(COMPILE_MSVC)m_mediaPlayer = new QMediaPlayer(this, QMediaPlayer::VideoSurface);connect(m_mediaPlayer, SIGNAL(durationChanged(qint64)), this,SLOT(durationChanged(qint64)));#endif

使用这种宏可以在程序中进行条件编译

三、

win32-msvc*{DESTDIR += $PWD/../build/msvc/run}else{win32-g++{DESTDIR += $PWD/../build/mingw32/run}else{if(contains(QMAKE_CXX,g++)){DESTDIR += $PWD/../build/ubuntu/bin}if(contains(QMAKE_CXX,aarch64-linux-gnu-g++)){DESTDIR += $PWD/../build/aarch64/bin}}}

DESTDIR 是一个目标程序的生成目录,最终的目标文件生成后会存放到这个路径下

pro文件加入下面这句

DEFINES += KJorLJ=0
if(KJorLJ == 1)ui->pushButton_2->setStyleSheet(\"background-color: rgb(6, 60, 132); color: rgb(255, 255, 255);\");elseui->pushButton_2->setStyleSheet(\"background-color:rgb(6, 91, 50);color:rgb(255, 255, 255);\");

可以实现不同的功能

所以DEFINES 就是在pro文件中定义的宏,这个宏是一个全局的,程序中也可使用

#if defined(ARM_ARCH) //如果是在开发板上运行,那么需要隐藏鼠标指针QApplication::setOverrideCursor(Qt::BlankCursor); // 隐藏鼠标#endif

【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】

点击这里:

关键词:

x 广告

QT中如何识别编译器和实现条件编译以及设定目标文件生成路径

一、识别编译器win32-msvc*{DEFINES+=COMPILE_MSVC}else{win32-g++{DEFINES+=COMPILE_MINGW32DEFINES+=PJ_AUTOCONF=1DEFINES+=PJ_IS_BIG_ENDIA

世界快资讯:run run away翻译_run run away

1、我喜欢黑白的在白色的黑色中做梦你喜欢黑白的跑逃走的人见到在太阳下在那里横躺的变色龙所有的事物对每个人跑逃走的人如果你

全球热点评!《薄冰》吴越董洁皱纹都是戏,四大女主天然脸与硅胶脸对比明显

《薄冰》吴越董洁皱纹都是戏,四大女主天然脸与硅胶脸对比明显,董洁,吴越,军校,彭冠英,王劲松,战争法,女演员,小说改编片,薄冰(电视剧)

安全光荣榜84_全球简讯

安全光荣榜84(中国国家铁路集团有限公司安全监督管理局发布)呼和浩特局集团公司呼和浩特东站马小雅成都局集团公司重庆机务段何副瑀谷根呼和

千叶大学qs世界大学排名_千叶大学-世界独家

1、千叶大学(日文名:ちばだいがく,英文名:ChibaUniversity),简称“千叶大”,诞生

x 广告

Copyright   2015-2022 华东地质网版权所有  备案号:京ICP备2022016840号-41   联系邮箱:2 913 236 @qq.com