Qt跨平台编译时在pro文件中做一些区分处理

Qt跨平台使用,需要在不同平台环境下重新再编译一次代码。

有时在不同平台会引用不同的库(或版本),或者在不同的平台有不同的定义等,如果每次切换时通过在Pro文件中做操作(通过屏蔽或开放一些项的方式),过于繁琐,而且有时不重新再构建一次会不生效,为此可在Pro文件中用下述方式:

 

ISARM=$${QMKESPEC}

isEqual(ISARM, "/usr/.../mkspecs/x-g++"){ #这里""中填自己的ARM编译时QMAKESPEC环境变量选择

#...这里可以填ARM编译时的定义或引用

#DEFINES += __ENABLE_XX__

#SOURCES += ...

#HEADERS += ...

}else{

#....这里可以填非ARM编译时的定义或引用

}

contains(DEFINES, __ENABLE_XX__) { #这里可以对是否有__ENABLE_XX__的定义做一些区分

#QT += ...

#SOURCES += ...

#HEADERS += ...

}

 

上述通过增加一个变量ISARM,来比较当前加载的Kits是不是ARM编译;通过比较是否有__ENABLE_XX__的定义,也可以加载一些不同的库或模块;

如此上述做完之后,跨平台编译,就仅需要在项目里选择不同Kits,然后点击编译并运行按钮就可以了。

posted @ 2021-03-03 16:59  阿室安~  阅读(992)  评论(0)    收藏  举报