什么是最好的方法编写目标-C窗户上的平台?

Cygwin和海湾合作委员会?有没有办法我可以以某种方式融入这些工作室吗?

沿着这些线路的-是否有任何建议如何链接和使用Windows适用于这样的事情。它是一个不同的野兽但我知道我可以编写大会和链接在Windows Dll给我访问到的那些话但我不知道如何做到这一点没有谷歌上搜索和获取零敲碎打的方向。

是任何人都知道的一个良好的网上或书中资源要做,或解释这些种类的东西吗?

有帮助吗?

解决方案

扩大在前两次答复,如果你只是想要的目标-C,但是没有任何可可的框架,然后海湾合作委员会的工作对任何平台。你可以用它通过Cygwin或获得MinGW.但是,如果你想要可可的框架,或至少一个合理他们的子集,然后GNUStep和Cocotron是你最好的赌注。

Cocotron实现了很多东西,GNUStep不,例如CoreGraphics和CoreData,虽然我不能证实对于如何完成其执行情况是在一个特定的框架。他们的目的是要保持Cocotron了新的最新版本的OS X因此,任何可行的OS X程序可以运行。因为GNUStep通常使用最新版本的海湾合作委员会,它们也加入支持的目标-C++和大量的目标-C2.0特征。

我没有测试过的那些特征与GNUStep,但是如果使用一个充分的新版本海湾合作委员会,可能能够使用它们。我是不是能够使用的目标-C++与GNUStep几年前。然而,GNUStep并编制从任何平台。Cocotron是一个非常mac为中心的项目。虽然它可能是可能编制它对其他平台,它涉及模式的项目文件并不生成文件,因此可以只汇编其框架的框OS X.它还配备了指示编制的Windows的应用程序模式,但没有任何其他平台。基本上,它可能可以设置一个窗户开发环境Cocotron,但这并不容易,如设置一个GNUStep,你会在你自己,因此GNUStep是绝对的路要走,如果你在发展中Windows而不是只是为了窗口。

为什么它的价值,Cocotron被准许在麻省理工学院许可证,并GNUStep下授权的LGPL.

其他提示

你的 可以 使用目标C内部Windows环境。如果按照这些步骤,应该将工作只是罚款:

  1. 请访问 GNUstep网站 并下载 GNUstep MSYS Subsystem (不能马为GNUstep), GNUstep Core (库GNUstep), GNUstep Devel
  2. 在下载这些文件,安装在这一秩序,或者您将会有问题与配置
  3. 导航 C:\GNUstep\GNUstep\System\Library\Headers\Foundation1 并保证 Foundation.h 存在
  4. 打开了一个命令迅速和运行 gcc -v 来检查 GNUstep MSYS 被正确地安装的(如果你得到一个文件没有发现错误,确保 bin 文件夹 GNUstep MSYS 是在你 PATH)
  5. 使用这种简单的"hello World"程序,以测试GNUstep的功能:

    #include <Foundation/Foundation.h>
    
    int main(void)
    {
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
        NSLog(@"Hello World!.");
        [pool drain];
     return;
    }
    
  6. 回到该命令迅速和 cd 你在哪里保存的"hello World"程序,然后汇编了:2

    gcc -o helloworld.exe <HELLOWORLD>.m -I /GNUstep/GNUstep/System/Library/Headers -L /GNUstep/GNUstep/System/Library/Libraries -std=c99 -lobjc -lgnustep-base -fconstant-string-class=NSConstantString
    
  7. 最后,从该命令迅速、类型 helloworld 来运行它

所有最好的,玩得开心目标-C!


注意到:

  1. 我使用的默认安装的路径-调整你的命令行相应的
  2. 确保文件夹中的路你是类似的地雷,否则你会得到一个错误

也:

该Cocotron是一个开放源项目,该项目旨在实现一个交叉平台的目标-C API所述的类似苹果公司的可可的文件。这包括AppKit、基础、目标-C运行和支持Api如CoreGraphics和CoreFoundation.

http://www.cocotron.org/

WinObjC?Windows桥对于内部监督办公室(以前称为'项目Islandwood').

Windows桥iOS(也称为WinObjC)为微软开源项目,提供了一个目标-C发展的环境Visual Studio/窗。此外,WinObjC提供支持iOS API的兼容性。虽然最终的释放会发生后,今年秋天的(允许的桥梁,利用新工具的能力,将船舶与即将到来的Visual Studio2015年更新),

这座桥是可用的开放源码社区现在在其目前的状态。从现在到秋天。IOS桥,作为一个开放源码项目下的麻省理工学院许可证。鉴于雄心的项目,使得它很容易适用于iOS开发人员来建立和运行的应用程序。

赛勒曼*艾哈迈德*有一个深入的后窗户上的桥梁iOS http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/ 讨论编译器、运行时,IDE一体化,并什么的桥梁,是不是.最重要的是,源代码iOS桥是生活在 但现在。

IOS桥支持Windows8.1和Windows10的应用程序建造x86和64处理架构,并很快我们将加编译器优化和支持手臂,这增加了移动的支持。

我们复杂的感情有关Cocotron项目。我很高兴他们被释放源代码并共享,但我不觉得他们都在做事情的最简单的方法。

例子。
苹果已经发布源代码的 目标-c runtime, ,其中包括性质和垃圾收集。该Cocotron项目,但是有自己的执行目标-c runtime.为什么还要重复的努力?甚至还有一些工作室的项目文件,该文件可以用来建立一个objc.dll 文件。或如果你真懒,你就可以复制DLL文件从一个安装的野生动物园在窗。

他们也没有打扰到杠杆作用CoreFoundation,这也是开源的苹果.我贴了 的问题 关于这一点,但没有收到答复。

我认为目前最好的解决办法是采取源码从多种来源(苹果,CocoTron,GnuStep)和合并起来,你需要什么。你只需要阅读一个很大的来源,但这将是值得的最终结果。

我知道这是一个非常古老的职位,但我已经找到一个解决方案,它只有成为提供更多最近和使几乎所有的目标-C2.0功能上的视窗平台。

随着海湾合作委员会4.6,支持目标-C2.0语言特征(块,圆点的语法、综合性质,等等)加入到目标-C编译器(见 释放笔记 全面细节)。他们运行时也已更新工作,几乎完全相同苹果自己的目标-C2.0运行时间。在短这意味着,(几乎)任何程序,将合法地编纂与铛上Mac还将汇编与海湾合作委员会4.6,而无需修改。

作为一个侧面的注意,一个特点,那就是不可用的是字典/array/等文字,因为他们都是硬编码铛入使用苹果的NSDictionary,是,NSNumber等课程。

但是,如果你是幸福的生活在没有苹果的广泛的框架,即可。正如在其他的答案,GNUStep和Cocotron提供修改版本的苹果类图书馆,或者你可以写你自己的(我的首选的选项)。

MinGW是一种方法,以获得海湾合作委员会4.6关于视窗平台,并可以下载下来 MinGW网站.确保你安装你包括安装C、C++、目标-C和目标-C++。虽然可选,我也建议安装不能马的环境。

一旦安装,目标-C2.0源可以是汇编有:

gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)

MinGW还包括支持编制本机GUI Windows的应用 -mwindows 标志。例如:

g++ -mwindows MyFile.cpp

我没有尝试过,但是我想象一下如果你把你的目标-C类在目标C++在尽可能高的层,则应能够成功地相互交织机Windows GUI C++和目标-C所有在一个Windows的应用程序。

检查了 WinObjC:

https://github.com/Microsoft/WinObjC

它是一个官方的、公开源码项目由Microsoft集Visual Studio+窗。

如果你只是想试验,有一个目标-C编译器。网(Windows): qckapp

你可以得到一个客观c编译器,将工作与Windows和发挥好与Visual Studio2008年\2010年在这里。

开c弗莱德的

刚刚下载最新的来源。你不需要建立所有CF-Lite有一个解决方案,称为objc.sln。你会需要解决一些包括路径,但随后它将建立就好了。甚至有一个试验项目包括所以你可以看到一些目标-c。m文件编制和工作在visual studio.一个可悲的是,它只适用Win32不64.有一些大会代码,将需要编写64对它的支持。

最近的一次尝试口目标C2.0到窗是的 主观的 的项目。

从自述:

主观的是试图把目标C2.0与弧支持 窗户。

这个项目是一个叉的objc4-532.2,目的C runtime, 船舶与OS X的10.8.5.港口可以交叉编制OS X使用 编程铛合MinGW接头。

有某些限制有许多是一项额外 的工作,而其他人,例如例外和块,取决于更多 严肃的工作在第3次缔约方项目。该限制是:

•仅32位-64位正在进行中

•静联的唯一动态的连接正在进行中

•没有关闭/块-直到libdispatch支持他们在窗户

•没有例外情况直到铛支持他们在窗户

•没有老式的GC-直到有人在乎...

•内部:没有vtable都从,没有库的支持,只是普通的malloc,没有 preoptimizations-这些东西将提供下 64位的建立。

•目前修补铛编译器是必需的;贴增加了 -fobjc-runtime="主题"标志

该项目提供 , ,还有一个 螺纹 在Cocotron组概述了一些进展和遇到的问题.

获得GNUStep 在这里,

获得MINGW 在这里,

安装MINGW 安装GNUStep 然后测试

如果你是舒适用Visual Studio环境,

小项目:jGRASP与海湾合作委员会 大型项目:Cocotron

我听说有模拟器,但是我能找到的只有苹果II仿真器 http://virtualapple.org/.它看起来像局限于游戏。

首先,忘记了 GNUStep 工具。既没有 项目经理 也不 ProjectCenter 可以被称为一个IDE。对,它看起来像家伙 GNUStep 项目被困在上世纪80-s(其是当 下一步步骤 第一次出现).

Vim

ctags 支持的目标-C r771 (以一定要挑预释5.9版本,并添加 --langmap=ObjectiveC:.m.h 到命令行,请参阅 在这里,),所以你得像样的代码完成/标签的导航。

这里有一个简短的 howto 在加入的目标-C的支持,以Vim tagbar插件。

Emacs

这同样适用于 etags 运用现代Emacsen,这样你就可以开始用Emacs 目标C模式. YASnippet 将提供有用的模板:

YASnippet objc-mode

如果你想要的东西更多的智能比的 基本的标签基于代码完成,看看这个 的问题.

日食

CDT 支持 Makefile基于项目:

enter image description here

-所以从技术上讲你可以建立自己的目标-C项目的开箱(on Windows,你会需要的 CygwinMinGW 工具).唯一的问题是用代码编,其中将报告大量的错误反对它认为是一个纯粹的 C 代码(on-the-fly码检查可以关闭的,但是仍然...).如果你想适当的语法突出显示,可以添加 Eclim 你的 日食 和享受所有的良好的特点 日食Vim (见上文)。

另一个有希望的 日食 插件 刷子, 但它不支持目标-C。随文件的功能要求。

SlickEdit

SlickEdit, 除 其他的特征 一个伟大的IDE, 支持 目。虽然这是相当复杂的学习(不作为复杂,因为Emacs虽然),我相信这是您最好的选择提供你不介意购买(价格是相当负担得起的).

此外,它有一个 日食插件 这可以用来作为一种替代独立的编辑。

KDevelop

有传言说存在着一个 KDevelop 补丁 (15岁,但是谁在乎?).我不认为 KDevelop 是功能的周相比较 Emacsen, 所以我不会打扰尝试。


上述也适用于目标-C发展在Linux上,由于所有所提到的工具都或多或少便携式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top