首页 > 解决方案 > 如何将 GNUstep 编译器添加到 Qt 创建者以让他们在 Windows 上编译 .mm 文件?

问题描述

我有一个需要在 Windows 上编译的 MacOS 项目。我一直在使用 win32-clang-msvc 编译器,它似乎是唯一包含支持 Objective-c 编译的编译器。但是,我的文件有#import编译器不支持的语句,并且正在使用一些 MacOS 库/框架(如基础)。

我已经安装了 GNUstep msys、core 和 devel 组件,但我不知道我需要输入 Qt 添加编译器菜单以使其实际工作的所有数据。我使用c++.exeorcpp.exe吗?我用gcc.exe吗?制作路径在哪里?如何为其编写 mkspec?

有关于 GNUstep 的任何文档吗?

标签: c++qtgnustep

解决方案


QMAKE_EXTRA_COMPILERS您可以使用变量在 Qt 中添加自定义编译器。

我们已经使用这种方法来支持使用 GNUstep 在 Android 上构建 Objective-C 源代码。您可以查看示例项目,其中包含一个objc-gnustep.pri文件,其中包含 Objective-C 源代码的编译器定义。这也应该同样适用于 Windows。

话虽如此,我不确定您使用 Clang 和 GNUstep MSYS 包的设置是否可以按原样工作,因为 GNUstep MSYS 包/库可能是使用 MinGW 库使用 GCC 构建的,而您将使用带有 MSVC 运行时库的 Clang。GCC 带有一个 Objective-C 运行时,但是将 Objective-C 与 Clang 一起使用需要外部libobjc2运行时,正如最近在邮件列表中讨论的那样,它目前似乎与 MinGW 不兼容。话虽这么说,我很想知道你是否可以让它工作。

目前,最好的选择可能是使用 MinGW 的 GCC 和 GNUstep 包,而不是使用 Clang,但请注意,这不支持自动引用计数 (ARC) 和仅由 Clang/libobjc2 支持的一些其他功能。


推荐阅读