在Windows平台上编写Objective-C的最佳方法是什么?

Cygwin和gcc?有没有办法我可以以某种方式将它集成到Visual Studio?

沿着这条线-关于如何链接和使用Windows SDK来做这样的事情有什么建议吗?这是一个不同的野兽,但我知道我可以在Windows dll中编写汇编和链接,让我可以访问这些调用,但我不知道如何做到这一点,除非谷歌和得到零碎的方向。

有人知道有好的网络或书籍资源来做或解释这些事情吗?


当前回答

如果您熟悉Visual Studio环境,

小项目:使用gcc的jGRASP 大型项目:Cocotron

我听说有模拟器,但我只能找到Apple II Emulator http://virtualapple.org/。这似乎仅限于游戏。

其他回答

扩展前面的两个答案,如果你只想要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特性的支持。

I haven't tested those features with GNUStep, but if you use a sufficiently new version of gcc, you might be able to use them. I was not able to use Objective-C++ with GNUStep a few years ago. However, GNUStep does compile from just about any platform. Cocotron is a very mac-centric project. Although it is probably possible to compile it on other platforms, it comes XCode project files, not makefiles, so you can only compile its frameworks out of the box on OS X. It also comes with instructions on compiling Windows apps on XCode, but not any other platform. Basically, it's probably possible to set up a Windows development environment for Cocotron, but it's not as easy as setting one up for GNUStep, and you'll be on your own, so GNUStep is definitely the way to go if you're developing on Windows as opposed to just for Windows.

值得注意的是,Cocotron是在MIT许可下授权的,GNUStep是在LGPL许可下授权的。

在这里获取GNUStep

点击这里获取MINGW

安装MINGW 安装GNUStep 然后测试

截至2021年,GNUstep Windows MSVC工具链允许在任何Windows应用程序中集成Objective-C代码,包括使用LLVM/Clang的Visual Studio项目。这包括对自动引用计数(ARC)和Objective-C 2.0特性的支持,比如块。

该项目包括来自GNUstep的Foundation、CoreFoundation和libdispatch库。它目前不包括任何UI框架,如AppKit或UIKit,但它可以用来编写特定于windows的UI,使用Objective-C编写的跨平台业务逻辑。

如果你只是想尝试一下,这里有一个用于。net (Windows)的Objective-C编译器:qckapp

另外:

Cocotron是一个开源项目,旨在实现一个类似于苹果公司Cocoa文档所描述的跨平台Objective-C API。这包括AppKit, Foundation, Objective-C运行时和支持api,如CoreGraphics和CoreFoundation。

http://www.cocotron.org/