Qt Creator中根据为Windows系统还是Linux系统对源码进行条件编译
Posted rainbow70626
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt Creator中根据为Windows系统还是Linux系统对源码进行条件编译相关的知识,希望对你有一定的参考价值。
方法1:
在.h和.cpp文件中,针对需要不同平台编译的代码:添加上如下的条件编译指令:
#ifdef 标识符 程序段1 #else 程序段2 #endif
举例说明如下:
//Windows系统包含头文件名不区分大小写,但是Linux系统包含头文件名区分大小写,故采用条件编译 #ifdef unix #include "mainwindow.h" #else #include "MainWindow.h" #endif
在*.pro文件中,添加如下的宏定义:
DEFINES +=unix
方法2:
在使用iar,keil写单片机时,都可以先#define一个变量,然后根据变量的不同值编译不同的代码
在Qt里也可以这样,针对嵌入式的程序,一般是会在X86上编译,Debug,然后再部署到ARM去跑,这样,X86与ARM之间,可能就会有一些差异,如不同的平台,调用不同的库,这样就可以先#define一个变量,再根据变量去自动包含需要编译的东西。
首先在Project settings里增加build 参数DEFINES:如我增加专门针对ARM板上跑的参数DEFINES+=ARM
在源文件里就可以直接使用条件判断 #ifdef ARM // arm use only QWSServer::setCursorVisible(false); #endif 在pro文件里也可以使用: if(contains(DEFINES,ARM)){ message("compile for arm") LIBS += -L../armlib -lfpp }else{ message("compile for x86") LIBS += -L../x86lib -lfpp }
参考链接:
3、qt条件编译debug和release版本--qmake之CONFIG(debug, debug|release)
以上是关于Qt Creator中根据为Windows系统还是Linux系统对源码进行条件编译的主要内容,如果未能解决你的问题,请参考以下文章
在 Qt Creator (Windows) 中构建 Qt 库的问题
如何根据 cmak 在 qt creator 中使用 opencv Cuda