方法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 }
参考链接: