我正在使用QtCreator 3.1.1来构建一个跨平台的项目,所以我安排了不同的编译工具包来定位我的桌面PC和我的BeagleBoneBlack(BBB)。
现在我想在qmake项目文件(.pro
)中定义一些宏,这些宏仅针对给定的工具包。
换句话说,我想在我的.pro
文件中执行以下操作:
if(kit == BBB)
DEFINES += MY_BBB_MACRO
elseif(kit == Desktop)
DEFINES += MY_DESKTOP_MACRO
else
DEFINES += OTHER_MACRO
有可能吗?我怎么能这样做?
答案 0 :(得分:11)
我在Qt论坛上获得了一些帮助(看看here)关于这个问题......
无论如何,解决方案包括使用qmake built-in test functions。
基本上我在QtCreator的项目管理中添加了一些CONFIG
指令:在下面的屏幕截图中,您可以看到您可以看到我在BBB工具包的项目配置中添加了CONFIG+=BBB
;我以同样的方式将CONFIG+=AM335x
和CONFIG+=Desktop
添加到AM335x和桌面套件中......
然后,在我的.pro
文件中,我添加了类似的内容:
现在在我的源代码中,我可以使用类似#ifdef PLATFORM_BBB
,#ifdef PLATFORM_AM335X
和#ifdef PLATFORM_DESKTOP
的内容来区分程序行为,具体取决于编译工具包。
答案 1 :(得分:3)