【摘录】在Windows平台上使用Objective-C

  虽然到目前为止最好的Objective-C 编码平台来自苹果公司,但它们绝不仅适用于苹果公司的平台。Objective-C 在Linux、BSD 甚至Windows 等其他平台都有相当久远的历史。根据具体需求,你会发现一些能很好地支持这些替代平台的开源社区。本章将简要介绍一些其他的平台,并告诉你在哪里可以找到更多关于它们的信息。

  在其他平台上使用Objective-C 时面临的最大的挑战在于对能使Objective-C 变得强大的框架的支持。移植Objective-C 语言是一件琐碎的事。由于GNU编译器集合(gcc)开始支持Objective-C,Objective-C 在几乎所有gcc 支持的平台都可用。但是,移植核心框架是一项更加艰巨的任务。

  可以确定的是,Foundation 框架已经有最广泛的跨平台支持。而 Cocoa 和一些高层框架通常在其他平台上就不可用了。也有例外情况,如果你要在OS X 之外的平台运行应用,在考虑使用GUI 框架时就要特别小心。

  对Objective-C和Cocoa所框架一起使用支持最好的主要有GNUstep 和Cocotron。这两个开源项目在移植性技术方面使用完全不同的方法,不过结果是一样的,即支持在Linux、Windows、BSD 和其他平台编写和编译使用Cocoa 和Foundation 的Objective-C 代码。

  GNUstep 

  因为其久远的历史,GNUstep 项目对Foundation 和Cocoa 有一些最好的支持。不过,因为它们的真正的目标是复制NeXTstep 环境,而不是模拟运行应用的Mac OS X 或平台的原生组件集,而它们实际上包含了整个NeXTstep 环境的组件集。这意味着如果你择通过该项目将应用移植到Windows,你的应用在Windows 上运行时,看起来像一个NeXTstep 应用。这包括所使用的菜单类型的方方面面。此外,还有一些和运行GNUstep 应用所需的文件系统相关的问题。最后要确认的一点,为了在Windows 上运行一个GNUste程序,你必须安装完整的GNUstep 文件系统以及众多支持库。这一切可以让一个普通用户困惑。出于完整性考虑,在这里需要提到的是,过去几年间为GNUstep 添加皮肤支持做了一些努力。这样你至少可以创建一个Windows 应用,并使用Windows
的组件集。换言之,GNUstep 致力于图形应用的可移植性,并不断改善,但是目前还说不上完美。总之,对于Foundation 框架,GNUstep 的项目有一些到处可用的最好、最全面的支持。我想说如果你的应用是一个命令行应用,比如服务器,并且打算移植到Windows 或Linux,那么GNUstep项目将很可能可以帮助你实现这些。可以说,利用Mac OS X 上已经写好的现成代码并移植到Windows 的一个较好的方式就是利用Objective-C 和 GNUstep 移植后台、底层非界面的代码。你可写一个原生的图形应用,通过进程间通信进行通信或者将它作为库来链接。这样做可以两全其美。一方面统一了业务逻辑代码,同时还能向用户提供熟悉的原生用户界面。关于 GNUstep 项目的更多信息,可以访问它们的站点http://www.gnustep.org。

  Cocotron

  另一个最近的跨平台Objective-C 方面的尝试就是Cocotron 项目的创建。在将应用移植到MacOS X 之外的平台方面,Cocotron 项目采用不同的方式。Cocotron 为Xcode 提供了一个的交叉编译器环境,这样你可以在Mac OS X 平台上Xcode 里交叉编译你的应用。通过该交叉编译器,你可以编译Windows、Linux 或其他UNIX 桌面版本。以这种方式交叉编译的应用,观感和行为都和原生的应用一致。Cocotron 的工作原理就是利用Xcode 在编译代码时支持多个工具链和SDK的能力。为iPhoneOS 或者 Mac OS X 编译代码时,只需要单击一个按钮的技术使得Cocotron 可以发挥它的威力。如果你觉得将Mac OS X 和Xcode 作为开发环境最惬意,那Cocotron 是一个完美的解决方案。它支持在Mac OS X 上进行所有开发,然后简单地改变SDK 并为目标平台重新编译应用。这似乎还不够,Cocotron 还有一些对Cocoa 和Foundation 框架的最好的第三方支持。它的实现已足以开发同时部署在Mac OS X 和Windows 平台上的Cocotron 商业级应用。Cocotron 相对落后的最大领域在网络、线程处理和一些高层次的框架支持。不过正在积极努力中,而且如果你有足够的预算,你甚至可以和Cocotron 的维护者订立契约来改善你的应用所需要的具体的库。

  

时间: 2024-08-19 08:15:57

【摘录】在Windows平台上使用Objective-C的相关文章

【翻译自mos文章】在windows平台上怎么启用Oracle database 企业版的partition?

来源于: How to enable Partitioning in Oracle Database Enterprise Edition 11.2 on Windows (文档 ID 1188238.1) 适用于: Oracle Database - Enterprise Edition - Version 11.2.0.1 and later Information in this document applies to any platform. 目标: 在Windows平台上怎么启用Or

亲试,Windows平台上使用Qt5.2.1编写Android

首先把工具都下载好: 1. Qt for Android: http://qt-project.org/downloads 2. Android NDK http://developer.android.com/tools/sdk/ndk/index.html 64位可以下载第二个 3. Apache Ant 1.9.3 http://ant.apache.org/bindownload.cgi 4. JDK http://www.oracle.com/technetwork/java/java

在Windows平台上远程桌面Redhat 企业版 5和6.

在Windows平台上远程桌面Redhat 企业版 5和6.这个方法主要是使用XManager 3.0来进行远程桌面.1.使用软件:XManager3.0企业版.2.服务器版本:Redhat Enterprise 5&6.3.服务器端详细配置:     3.1.修改/etc/inittab              id:5:initdefault;     3.2.修改/etc/gdm/custom.conf              [xdmcp]              Enable=1

Windows平台上安装LaTex工具以及LaTex常见的文件类型汇总

LaTex广泛用于学术报告.paper.学术PPT的撰写和制作,熟练掌握LaTex是在学术界生存的必备基本技能之一.本文简要介绍了在Windows平台上安装LaTex工具的基本方法和流程以及LaTeX常见的文件类型. 1.下载MiKTeX,下载地址为:http://miktex.org/download.MiKTeX的正确读音为/'mik'tek/. 2.安装MikTeX.安装完毕后,在开始菜单会出现"Previewer"和"TeXworks"程序图标.Previe

在Windows平台上安装Node.js及NPM模块管理

1. 下载Node.js官方Windows版程序:   http://nodejs.org/#download   从0.6.1开始,Node.js在Windows平台上提供了两种安装方式,一是.MSI安装文件,另外还有一个.EXE可执行文件.   我选择了.EXE文件.因为.MSI安装文件除了将node.exe复制到C:\Program File (x86)\目录中及修改系统Path之外,没发现还有其他作用.   我使用的版本为0.6.2: http://nodejs.org/dist/v0.

Windows平台上谷歌浏览器损害电池

From:http://www.cnblogs.com/killerlegend/p/3909208.html Author:KillerLegend Date:2014.8.13 事情是这样的,我的笔记本最近老是突然就关机了,就跟台式机突然断电似的,直接就挂掉了...   我的电脑用的不到一年半,使用powercfg –energy命令检测: 查看energy-report.html,检测结果吓了我一跳: 我电池现在充电连33%都不到了,以前电脑断电后基本上两个小时都可以坚持住,现在就是40分

Windows平台上编译Qt-4.8.x Debug版注意事项

Windows平台上编译Qt-4.8.x Debug版注意事项 跳转至: 导航. 搜索 目录 1 为什么要编译qt-4.8.x的Windows Debug版? 2 1 MSVC版本的选择 3 2 WinRAR的问题 4 3 qmake子项目裁剪 5 4 调试QtWebKit 0 为什么要编译qt-4.8.x的Windows Debug版? 目的:为了方便调试qt的代码!VS比Linux gdb好使多了. 1 MSVC版本的选择 最好使用VS2008+,它的安装包自带了Windows SDK,不要

windows平台上的一个内存池的实现

.h文件 /**********************说明************************* * 这是MPool内存池的实现,他具有如下特性: * 1. 池中的内存块是大小是相同的 * 2. 由宏定义_MP_NO_SERIALIZE决定是否需要多线程同步 * 3. 他利用windows的堆内存API进行内存分配 * 4. 他不能替换crt的malloc和free * 5. 他不是一个通用型的内存池 * 6. 适用于特定的应用环境(高频率的申请释放内存,如网络服务器),应用环境影

分享一些 Windows 平台上的神器

下面分享一些 Windows 平台上日常开发使用的软件,有些软件我自认为是神器,可以大大提高效率. 编辑器类软件 IntelliJ IDEA IntelliJ IDEA 内部集成 Java 开发环境,具有代码智能提示,智能搜索,代码重构,版本控制工具集成(git,svn等),以及支持主流开源框架,如Spring.另外 IntelliJ IDEA 拥有一个丰富的插件库,可以很方便安装插件.通过安装插件,IDEA 还可以支持其他语言,如 Python. 建议通过 ToolBox 安装 Intelli