文档章节

如何在Windows上编译Objective-C

xiahuawuyu
 xiahuawuyu
发布于 2012/07/21 23:16
字数 770
阅读 1188
收藏 10

Objective-C现在几乎已经变成了苹果的专利了,可以直接在苹果的Xcode上编译Objective-C程序,但是在Windows平台下的编译工具就寥寥无几了,本身这种语言用的人就不是很多。今天在网上突然看到了有人发帖,可以在Windows平台下编译Objective-C,就抱着好奇的心态试了试。没想到,居然成功了,现在就把怎样搭建Objective-C编译平台的经验拿出来和大家分享。

1、安装GNUstep

GNUstep Windows Installer提供了Windows平台下的Object-C的模拟开发环境,一共有四个软件包,其中GNUstep System和GNUstep Core是必装的,GNUstep Devel和Cairo Backend是选装的。只安装前两个就够了。

2、编写Objective-C代码

安装完成后,在开始菜单里的GNUstep选项里执行shell,就能打开命令行。直接在Windows里进入C:/GNUstep/home/Administrator(我的是Administrator,可能有的不一样)目录,在这里用你喜欢的工具(现在UltraEdit和Notepad++编辑器好像可以代码高亮)编写Object-C程序。
如:HelloWorld.m

#import <Foundation/Foundation.h> 
   
 int main (int argc, const char *argv[]) {  
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  
    NSLog(@"Hello World!");  
    [pool drain];  
 
    return 0;  
}

3、配置环境变量

这一步很重要。GNUstep.sh是用来设置GNUstep开发环境变量的,如果没有执行,就会有很多头文件,库文件,命令找不到

在一个目录里写好了源代码以后,编写一个make配置文件,名字必须叫GNUmakefile,内容是

include $(GNUSTEP_MAKEFILES)/common.make  
TOOL_NAME=Test 
Test_OBJC_FILES=HelloWorld.m  
include $(GNUSTEP_MAKEFILES)/tool.make

可以修改上面的黑体部分

然后就是

make


命令运行成功就可以看到新增了一个obj目录,里面就有你要的可执行文件和.o文件。

OK 搞定了。

小结:如何在Windows编译Objective-C的内容介绍完了,希望本文对你有所帮助!

 

1.下载GNUStep

http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/

下载

gnustep-msys-system-x.x.x-setup.exe

gnustep-core-x.x.x-setup.exe

gnustep-cairo-x.x.x-setup.exe

gnustep-devel-x.x.x-setup.exe

将下载的GNUStep安装,比如C:\GNUStep

2. 下载JEdit

http://www.jedit.org/index.php?page=download

JEdit 是Freeware,可以用来编辑 .m 文件 .m 是Object C缺省后缀。 .m 相当于 .c 文件

3. 一个Object C教材

http://www.otierney.net/objective-c.html

———————————————

4. 安装后,执行msys.bat 启动 GNUStep 环境 (类Linux环境)

5. 编写示例程序

fraction.h

#import <Foundation/NSObject.h>

@interface Fraction: NSObject {
     int numerator;
     int denominator;
 }

-(void) print;
 -(void) setNumerator: (int) n;
 -(void) setDenominator: (int) d;
 -(int) numerator;
 -(int) denominator;
 @end

fraction.m

#import "fraction.h"
 #import 

@implementation Fraction
 -(void) print {
     printf( "%i/%i", numerator, denominator );
 }

-(void) setNumerator: (int) n {
     numerator = n;
 }

-(void) setDenominator: (int) d {
     denominator = d;
 }

-(int) denominator {
     return denominator;
 }

-(int) numerator {
     return numerator;
 }
 @end

main.m

#import 
#import "fraction.h"

int main( int argc, const char *argv[] ) {
     // create a new instance
     Fraction *frac = [[Fraction alloc] init];

    // set the values
     [frac setNumerator: 1];
     [frac setDenominator: 3];

    // print it
     printf( "The fraction is: " );
     [frac print];
     printf( "\n" );

    // free memory
     [frac release];

    return 0;
 }

6. 编写Makefile

在当前目录下创建GNUmakefile

include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME = Hello
 Hello_OBJC_FILES = main.m fraction.m

include $(GNUSTEP_MAKEFILES)/tool.make

6. 编译程序

$ make

将创建 obj目录 运行  hello.exe

The fraction is: 1/3

这样环境就搭好了,你就可以继续学习 Object C了

最终写iphone程序一般还是要Mac OS.

--------------------------------------------------------------------

http://mobile.51cto.com/iphone-281182.htm

http://www.imobilebbs.com/wordpress/?p=3081

© 著作权归作者所有

xiahuawuyu
粉丝 104
博文 648
码字总数 713300
作品 0
浦东
技术主管
私信 提问
加载中

评论(5)

v
vip.cyw
使用黑苹果啊。安装XCODE 4.2
洲宝
洲宝
用过了 也不是很爽!一般般了 编译 智能提示都很差@!
j
jpsiyu
pc上装个黑苹果也不错~
xeonwell
xeonwell
貌似连@property都不支持, 建议还是mac机。
jellyzi
jellyzi
不错,收藏啦
LLVM在Windows和Linux下哪些IDE支持它?

最近开始吃苹果。但是苹果是公司的,回家不能吃。自己家里想学Objective-C就没辙了。gcc虽然支持Objective-C,但是还是更想用LLVM试试。 在家安装了GNUStep和MinGW版的LLVM,命令行编译倒是可...

魔力猫
2012/06/14
4.4K
3
Windows下搭建Objective-C运行环境

目前来说,如果真的想用Xcode来运行Objective-C程序,那么可以用虚拟机装Mac OS X或者装黑苹果(在PC机上安装苹果的系统,不建议),不过这两种方式都有些麻烦,目前比较通用的一种方法是借用...

xiahuawuyu
2012/04/17
7K
1
微软发布 Project Islandwood 应用移植指南

微软正忙着将iOS开发者吸引到自家的Windows生态系统中来,而Project Islandwood就是一个重要的手段。作为一个在GitHub上托管的开源项目,其到目前位置都算是比较成功的。今天,该公司通过MSD...

水门-kay
2015/12/03
3.1K
8
每日科技英文50: 微软的开源库WinObjc(IOS SDK逆向工程)

今日要点: WinObjc初衷是为了将IOS中的程序直接在WinPhone中运行.因此微软逆向了整个IOS SDK实现 目前winPhone已死,但是IOS逆向的价值还是非常大,因此值得花点时间推荐给大家 有兴趣可以去...

随风而行之青衫磊落险峰行
2017/12/20
0
0
多平台(Wp8/win8/Windows/iOS/Android)的开发语言

1. Wp8/win8采用的是Xaml&c#编程语言 XAML是一种相对简单、通用的声明式编程语言,它适合于构建和初始化.NET对象。XAML仅仅是一种使用.NET API的方式,把它与HTML、可伸缩向量图形(SVG)或其...

失足处男的倒霉孩子
2013/12/25
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS盒子模型

一、什么叫框模型 页面元素皆为框(盒子) 定义了元素框处理元素内容,内边距,外边距以及边框的计算方式 二、外边距 围绕在元素边框外的空白距离(元素与元素之间的距离) 语法:margin,定...

wytao1995
今天
4
0
Replugin借助“UI进程”来快速释放Dex

public static boolean preload(PluginInfo pi) { if (pi == null) { return false; } // 借助“UI进程”来快速释放Dex(见PluginFastInstallProviderProxy的说明) return PluginFastInsta......

Gemini-Lin
今天
4
0
Hibernate 5 的模块/包(modules/artifacts)

Hibernate 的功能被拆分成一系列的模块/包(modules/artifacts),其目的是为了对依赖进行独立(模块化)。 模块名称 说明 hibernate-core 这个是 Hibernate 的主要(main (core))模块。定义...

honeymoose
今天
4
0
精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
今天
7
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部