qt - QtCreator : kit-specific precompiler macro definitions

标签 qt qt-creator qt5

我正在使用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+=AM335xCONFIG+=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/

相关文章:

c++ - 如何使用 QList<QStandardItem *> 获取列中的所有项目?

qt - 找不到有效的设置文件

linux - 使用 qprocess 在 linux 中运行外部应用程序

QT:构建时 Ui 不会刷新

c++ - 如何通过 g++-arm-linux-gnueabihf 为 Arm 构建 Qt?

qt - 为什么麦克风关闭时基本频率和幅度不为零?

QT Creator 构建错误 : failure during conversion to COFF

c++ - 生成由单独的测试类调用的 C++ 静态库的测试覆盖率

macos - 如何在 qmake (QtCreator) 中指定 Mac 平台

c++ - 在 Qt5 中使用 MPlayer