我正在使用QtCreator 3.1.1构建跨平台项目,因此我安排了针对目标台式机和BeagleBoneBlack(BBB)的不同编译工具包。
现在,我想在qmake项目文件(.pro
)中定义一些仅针对给定工具包的宏。
换句话说,我想在.pro
文件中执行以下操作:
if(kit == BBB)
DEFINES += MY_BBB_MACRO
elseif(kit == Desktop)
DEFINES += MY_DESKTOP_MACRO
else
DEFINES += OTHER_MACRO
有可能吗?我怎样才能做到这一点?
最佳答案
我在Qt论坛上获得了一些有关此问题的帮助(请看here)。
无论如何,解决方案在于使用qmake built-in test functions。
基本上,我在QtCreator的项目管理中添加了CONFIG
指令:在下面的屏幕截图中,您可以看到例如在BBB套件的项目配置中添加了CONFIG+=BBB
的信息。以相同的方式,我分别向AM335x和 table 面工具包中添加了CONFIG+=AM335x
和CONFIG+=Desktop
...
然后,在我的.pro
文件中,添加了类似以下内容:
现在在我的源代码中,我可以使用#ifdef PLATFORM_BBB
,#ifdef PLATFORM_AM335X
和#ifdef PLATFORM_DESKTOP
之类的东西来根据编译工具来区分程序行为。
关于qt - QtCreator : kit-specific precompiler macro definitions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24912778/