Objective-C for Windows在Windows平台上编写Objective-C的最佳方法是什么? Cygwin和gcc? 有没有办法可以将它集成到Visual Studio中? 沿着这些方向 - 是否有任何关于如何链接和使用Windows SDK的建议。 它是一个不同的野兽,但我知道我可以在Windows DLL中编写汇编和链接,让我可以访问这些调用,但我不知道如何做到这一点,没有谷歌搜索和零碎的方向。 是否有人知道一个好的在线或书籍资源来做或解释这些事情? 扩展前两个答案,如果您只想要Objective-C而不是任何Cocoa框架,那么gcc将适用于任何平台。您可以通过Cygwin使用它或获得MinGW。但是,如果你想要Cocoa框架,或者至少是它们的合理子集,那么GNUStep和Cocotron是你最好的选择。 Cocotron实现了很多GNUStep没有的东西,比如CoreGraphics和CoreData,尽管我不能保证它们在特定框架上的实现有多完整。他们的目标是使Cocotron与最新版本的OS X保持同步,以便任何可行的OS X程序都可以在Windows上运行。由于GNUStep通常使用最新版本的gcc,因此它们还增加了对Objective-C ++和许多Objective-C 2.0功能的支持。 我没有使用GNUStep测试这些功能,但是如果你使用足够新版本的gcc,你可能可以使用它们。几年前我无法在GNUStep中使用Objective-C ++。但是,GNUStep几乎可以从任何平台编译。 Cocotron是一个非常以mac为中心的项目。虽然可能在其他平台上编译它,但它来自XCode项目文件,而不是makefile,所以你只能在OS X上编译它的框架。它还附带有关在XCode上编译Windows应用程序的说明,但不是任何其他平台。基本上,可能可以为Cocotron设置一个Windows开发环境,但它并不像为GNUStep设置一样容易,而且你可以自己动手,所以如果你正在开发GNUStep肯定是要走的路。 Windows而不是Windows。 对于它的价值,Cocotron是根据MIT许可证授权的,GNUStep是根据LGPL许可的。 您可以在Windows环境中使用Objective C.如果你按照这些步骤,它应该工作得很好: 使用这个简单的"Hello World"程序来测试GNUstep的功能:
返回命令提示符并
最后,在命令提示符下键入 一切顺利,与Objective-C玩得开心! 笔记: WinObjC?适用于iOS的Windows Bridge(以前称为"Project Islandwood")。 Windows Bridge for iOS(也称为WinObjC)是一个Microsoft开源项目,为Visual Studio / Windows提供Objective-C开发环境。此外,WinObjC还支持iOS API兼容性。虽然最终版本将在今年秋季晚些时候发布(允许桥接器利用随即将推出的Visual Studio 2015更新提供的新工具功能), 现在处于当前状态的开源社区可以使用该桥。从现在到秋天。 iOS桥作为MIT许可下的开源项目。鉴于该项目的雄心壮志,iOS开发人员可以轻松地在Windows上构建和运行应用程序。 Salmaan Ahmed在Windows Bridge for iOS上有一篇深入的帖子http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/讨论了编译器,运行时,IDE集成以及桥是什么和不是什么。最重要的是,iOS桥的源代码现在正在GitHub上运行。 iOS桥接器支持为x86和x64处理器架构构建的Windows 8.1和Windows 10应用程序,很快我们将添加编译器优化和ARM支持,从而增加了移动支持。 也:
http://www.cocotron.org/ 我对Cocotron项目的看法很复杂。我很高兴他们发布了源代码和共享,但我不觉得他们是以最简单的方式做事。
例子。 他们也没有费心去利用CoreFoundation,后者也是Apple开源的。我发布了一个关于此的问题,但没有得到答案。 我认为目前最好的解决方案是从多个来源(Apple,CocoTron,GnuStep)获取源代码并将它们合并到您需要的地方。你必须阅读很多来源,但最终的结果是值得的。 我知道这是一篇非常古老的帖子,但我找到了一个最近才可用的解决方案,并在Windows平台上启用了几乎所有的Objective-C 2.0功能。 随着gcc 4.6的出现,Objective-C 2.0编译器中添加了对Objective-C 2.0语言功能(块,点语法,合成属性等)的支持(有关完整详细信息,请参阅发行说明)。他们的运行时也已更新,几乎与Apple自己的Objective-C 2.0运行时相同。简而言之,这意味着(几乎)任何将在Mac上与Clang合法编译的程序也将使用gcc 4.6进行编译而无需修改。 作为旁注,一个不可用的功能是字典/数组/等文字,因为它们都被硬编码成Clang以使用Apple的NSDictionary,NSArray,NSNumber等类。
但是,如果您愿意在没有Apple广泛框架的情况下生活,您可以。 MinGW是在Windows平台上获得GCC 4.6的一种方式,可以从MinGW网站下载。确保在安装时包含C,C ++,Objective-C和Objective-C ++的安装。虽然是可选的,但我还是建议安装MSYS环境。 安装完成后,可以编译Objective-C 2.0源代码:
MinGW还支持使用
我还没有尝试过,但我想如果你将Objective-C类包装在最高层的Objective-C ++中,你应该能够在一个Windows应用程序中成功地将本机Windows GUI C ++和Objective-C交织在一起。 查看WinObjC: https://github.com/Microsoft/WinObjC 这是Microsoft的一个官方开源项目,它与Visual Studio + Windows集成。 如果您只是想进行实验,那么这里有一个针对.NET(Windows)的Objective-C编译器:qckapp 您可以获得一个可与Windows一起使用的目标c编译器,并在此处与Visual Studio 2008 2010一起使用。 open-c flite 只需下载最新的来源。您不需要构建所有CF-Lite,而是有一个名为objc.sln的解决方案。您将需要修复一些包含路径,但随后它将构建得很好。甚至还有一个测试项目,所以你可以看到一些Objective-c .m文件正在编译并在visual studio中工作。一件令人伤心的事情是它只适用于Win32而不是x64。有一些汇编代码需要为x64编写才能支持它。 最近将Objective C 2.0移植到Windows的尝试是主观项目。 从自述文件:
该项目可在Github上获得,Cocotron Group也有一个主题,概述了一些进展和遇到的问题。 在这里获取GNUStep MINGW在这里
安装MINGW 首先,忘掉GNUStep工具。 ProjectManager和ProjectCenter都不能称为IDE。尽管如此,看起来GNUStep项目的人们仍然坚持在80年代后期(这是NeXTSTEP首次出现时)。 VIM
这是关于向Vim tagbar插件添加Objective-C支持的简短说明。 Emacs的
这同样适用于现代Emacsen附带的
如果你想要比基本的基于标签的代码完成更聪明的东西,请看看这个问题。 日食
CDT支持基于
- 从技术上讲,您可以开箱即用构建Objective-C项目(在Windows上,您需要Cygwin或MinGW工具链)。唯一的问题是代码编辑器会报告大量错误,而不是它认为是纯C代码(可以关闭动态代码检查,但仍然......)。如果你想要正确的语法高亮,你可以将Eclim添加到Eclipse中,并享受Eclipse和Vim的所有优点(见上文)。 另一个有前途的Eclipse插件是Colorer,但它目前还不支持Objective-C。请尽快提交功能请求。 SlickEdit的 SlickEdit,以及一个出色的IDE的其他功能,支持Objective-C。虽然学习起来相当复杂(虽然不像Emacs那么复杂),但我相信这是你最好的选择,只要你不介意购买它(价格相当实惠)。 此外,它还有一个Eclipse插件,可以用作独立编辑器的替代品。 KDevelop的 有传言说有一个KDevelop补丁(15岁,但谁在乎?)。我个人认为KDevelop与Emacsen相比功能更优越,所以我不打算尝试它。 以上也适用于Linux上的Objective-C开发,因为所提到的所有工具或多或少都是可移植的。 如果您对Visual Studio环境感到满意,
小项目:jGRASP与gcc 我听说有模拟器,但我只能找到Apple II Emulator http://virtualapple.org/。它看起来仅限于游戏。 |