如何将GNUstep编译器添加到Qt创建者中,让他们在Windows上编译.mm文件



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

我已经安装了GNUstep-msys、core和devel组件,但我不知道我需要在Qt-add编译器菜单中输入什么数据才能真正工作。我使用c++.exe还是cpp.exe?我使用gcc.exe吗?make path在哪里?如何为它编写mkspec?

GNUstep是否有相关文件?

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

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

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

目前,您最好的选择可能是将MinGW的GCC与GNUstep包一起使用,而不是使用Clang,但请注意,这不支持自动参考计数(ARC(和Clang/libojc2仅支持的其他一些功能。

相关内容

最新更新