Qt qmake 跨平台开发

Qt qmake cross platform development

在 qmake 中定义跨平台行为的正确方法是什么?我正在尝试合并两个使用相同代码库但在 qmake 项目文件中具有不同参数的项目,例如不同的编译器标志或图标文件。

澄清一下,如果有人从版本控制中拉出 MyProject.pro 并尝试在 mac 上对其进行 运行 qmake,与在 windows machine 上进行相同的操作。有什么方法可以向 $> qmake ... 添加参数或更好,而不必更改任何内容?

你可以这样写:

win32:{
    # Do something Windows specific 
} else {
    # Options for other platforms
}

在您的 .pro 文件中。

是的,QMake 支持范围形式的条件语句。基本上,你写这样的东西:

DEFINES = MY_DEF

win32 {
  DEFINES += WE_ARE_ON_WINDOWS
  debug {
    DEFINES += DEBUG_WINDOWS
  }
}

如示例所示,作用域可以嵌套。 | 等运算符也可以用于 OR。

有关变量和函数的完整列表,请参阅 QMake documentation