【问题标题】:cmake project on Windows not picking up Q_OS_WINWindows 上的 cmake 项目没有获取 Q_OS_WIN
【发布时间】:2022-08-09 04:54:21
【问题描述】:

我正在移植一个支持从 qmake 到 cmake 的多个平台的遗留 Qt 项目,并且源代码处理平台特定的代码隐藏在预处理器宏之后,例如 #if defined(Q_OS_WIN)#if defined(Q_OS_MAC)

但是,我的 CMake 项目似乎没有定义 Q_OS_WINQ_OS_MAC,从而导致这些平台检查失败。

有没有人知道这些丢失的宏背后可能是什么?另外,Qt 如何设置这些定义?

  • 这些宏在QtGlobal 中定义,与cmake 或qmake 无关。 Here is how Q_OS_WIN 已定义。
  • 也没有名为#is 的预处理器宏
  • @chehrlic 你是对的,我的意思是 #if 而不是 #is。我会更新问题。
  • @ixSci 感谢您指出如何定义诸如 Q_OS_WIN 之类的宏。似乎一个可能的根本原因是项目中没有设置WIN32

标签: qt cmake


【解决方案1】:

如果有人偶然发现这个问题,Qt 会通过包含QtGlobal 来定义这些宏。请参阅 Q_OS_MACQ_OS_WIN

【讨论】:

    猜你喜欢
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多