实战 Windows下搭建Objective-c的编译环境
本文的目的是讲如何在windows下搭建obj-c语言的开发环境,从而能在Windows下进行IOS程序的开发!
首先介绍个东西,它叫GNUstep,我的理解它就是个在windows下的obj-c编译器.
以下是它的组件的下载地址,需要下载的东西有:
下载完成之后,把它们按照1,2,3,4的顺序统一安装在D:\GnuStep下.
到此为止,你的电脑上已经可以编译obj-c文件了,首先建立一个obj-c的文件,新建一个记事本文件,内容是:
#import <Foundation/Foundation.h>
int main (int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"%@",@"hello worldaa");
[pool drain];
return 0;
}
把它存在这个路径
D:\GNUstep\home\Administrator(将Administrator换成你当前windows用户名称),文件名就叫aa.m吧.
然后打开下图中的东西 :
打开后输入如下内容:
gcc -o helloworld helloworld.m \-fconstant-string-class=NSConstantString \-I /GNUstep/System/Library/Headers/ \-L /GNUstep/System/Library/Libraries/ \-lobjc \-lgnustep-base
解释一下:
\-fconstant-string-class=NSConstantString 是说文件中的字符串是NSConstantString类型的,比如"HelloWorldaa".
\-I /GNUstep/System/Library/Headers/ 是从哪儿引入头文件.
\-L /GNUstep/System/Library/Libraries/ 是从哪儿引入链接库
\-lobjc 和\lgnustep-base是上边目录下的两个文件,只是这里没有写全名称,两个文件如下图
整个命令输入完成后如下:
现在按一下回车,会出现如下提示:
说明这个aa.m已经编译好了.下图是生成的exe文件:
直接输入aa按回车,结果如下图:
我也不知道为什么在前边加了一个执行的时间..反正后边的hello worldaa出来了.
如果每次编译一个文件都要输入这么多东西,是件很蛋疼的事....
木事,我有办法...
在D:\GNUstep\bin下用记事本建立一下文件,叫gcc.sh,内容如下:
#!/bin/sh
if [ $# -ne 1 ]; then
echo "Usage: $0 name"
exit 1
fi
gcc -g -o $1 $1.m \-fconstant-string-class=NSConstantString \-I /GNUstep/System/Library/Headers/ \-L /GNUstep/System/Library/Libraries/ \-lobjc \-fobjc-exceptions \-lgnustep-base \-fconstant-string-class=NSConstantString \-enable-auto-import
exit 0
附图:
保存之后,现在直接在shell里输入gcc.sh aa(扩展名都省了)回车
什么都不提示,也就是没有错误信息,现在在输入aa看看,还是输入的helloWorldaa,这是这次生成的呢还是上次用一大串命令生成的?...我们改下aa.m,把helloWorldaa换个其它的输出信息..随便输出什么都可以..就输出HelloYang...吧,重新编译并运行,效果如下图:
到此为止,这个编译环境就搭建好了,不过还有些缺点,就是用记事本写代码不怎么好用,关键字什么的都不换个颜色..
这时候,有个叫Code::Blocks的东西出现了.这东西很强大,它除了是一个编辑器外,还可以指定你在里边写的代码用哪个东西来编译它,并且要设置哪些关键字为高亮等等....写这工具的伙伴们充分让它是可扩展的,比如N年后出一个语言叫K语言,然后可以用Code::Blocks来编写K的代码,然后指定K语言的编译器就好.除此之外呢,Code::Blocks还是跨平台的,可以运行在包括但不限于Windows,Linux,FreeBSD,MAC OS X这些平台上,你可以百度百科看一下,最后一点,它是开源的.
这是它的下载地址:
http://sourceforge.net/projects/codeblocks.berlios/files/codeblocks-10.05mingw-setup.exe/download
我把它安装在
D:\Program Files\CodeBlocks 下.
它是英文的,这是汉化包的下载地址:
m1.mail.sina.com.cn/apps/netdisk/download.php?id=cd10a5edbdd1b367de6a03089c9b9ea3&c=c
打开汉化包后里边有说明文件告诉你怎么安装的.
到这里为止,我假定你已经安装好并汉化好了,现在我们来设置用它编写obj-c的环境.
1,打开 设置-->环境
出现下图:
选择 "文件扩展名处理"
点下边的新建,输入*.m并确定.
2,打开 设置--编译器和调试器
3,选择GNU CC Compiler,点复制,让输入新名称,输入GNUStep MinGW Compiler
4,选择刚刚新命名的这个东西,然后选择"其它选项",在里边输入
-fconstant-string-class=NSConstantString -std=c99
5,点"链接器设置",选择"添加",输入
D:\GNUstep\GNUstep\System\Library\Libraries\libobjc.dll.a
和
D:\GNUstep\GNUstep\System\Library\Libraries\libgnustep-base.dll.a
6,点"搜索路径"的"编译器"选项卡,为它添加一个搜索路径:
D:\GNUstep\GNUstep\System\Library\Headers
7,切到"连接器"选项卡,添加如下路径
D:\GNUstep\GNUstep\System\Library\Libraries
8,点"可执行工具链",输入这个路径:
D:\GNUstep\mingw\bin
后点确定.
或者直接点"自动侦测"也可以.
9,点 项目-->项目树-->编辑文件类型&类别
出现下图,选择source,在下边输入*.m;后点确定.
10,点设置-->环境-->编辑器
选择"语法高亮"
选择 "文件掩码",输入*.m,点确定
选择"关键字".
输入以下内容
@interface @implementation @end @class @selector @protocol @public @protected @private id BOOL YES NO SEL nil NULL self
然后确定.
点完外边的确定之后,环境我们就设置好了,下边我们建立一个项目试试;
把默认的main.cpp改名成main.m
双击它,把里边的代码换成我们之前的aa.m里的代码
下边是关键的一步...
右键 main.m-->属性-->构建,将里边的Release和debug都选中
点这个"构建并运行"的按钮,
就出现运行的效果了:
OK,到此为止,在Windows下搭建Objective-C的编辑和编译环境就完成了,如果你发现有什么不对的地方,请与我QQ联系,553030761.