Windows 下使用 GNUstep 编译并运行 Objective-C 程序
来源:互联网 发布:防止监控qq软件 编辑:程序博客网 时间:2024/04/26 11:54
在Windows下搭建Objective C开发环境,需要到GNUstep官方网站上下载。
第一步:下载安装
GNUstep的官方网站:http://www.gnustep.org/experience/Windows.html
四个软件包:GNUstep MSYS System、GNUstep Core、GNUstep Devel、Cairo Backend。
说明:我的目录是C:\GNUstep
第二步:安装完毕后,打开:开始菜单 -> 所有程序 -> GNUstep -> Shell
就会进入一个类似 Linux 的 Shell 环境,如下图所示:
下面我们进入 /home 目录,然后创建一个 app1 的子目录:
cd /home
mkdir app1
cd app1
这个 app1 的目录位于磁盘上的 D:\GNUstep\msys\1.0\home\app1 目录下。
接下来我们写一个简单的程序:将此文件命名为app1.m放在app文件夹下。
#import <Foundation/Foundation.h>
int main (int argc, const char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello oschina");
[pool drain];
int main (int argc, const char *argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello oschina");
[pool drain];
return 0;
}
}
然后我们用下面的命令来编译这个程序:
$ gcc -o app1 app1.m -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base上面这个命令除了 -o 后面的参数你可以更改,其他都必须照写,否则就会出错。
-I表示头文件查找的路径,-L表示库文件查找 路径,-l表示需要链接的库文件。
但是,-fconstant-string-class=NSConstantString 对于这个参数可能比较陌生,
这个参数主要是指定常量字符串所使用的class。编译完就会在当前目录生成一个名为 app1.exe 的可执行程序。
输入 ./app1.exe 命令执行这个程序,执行结果:
2012-11-21 22:04:46.911 app1[4780] Hello oschina
再来一个复杂一点的程序 app2,app2 包含三个文件,分别是:
Main.m:
01
#import "Calculate.h"
02
03
int
main(
int
argc,
char
*argv[])
04
{
05
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
06
Calculate *cal = [[Calculate alloc] init];
07
int
v = 5;
08
int
av = 10;
09
[cal setNum: v];
10
[cal add: av];
11
NSLog(@
"%i + %i = %i\n"
, v, av, [cal num]);
12
[pool drain];
13
return
0;
14
}
01
//Calculate.h
02
#import <Foundation/Foundation.h>
03
04
@interface Calculate : NSObject
05
{
06
@
private
int
num;
07
}
08
09
-(
int
) num;
10
11
-(
void
) setNum: (
int
) n;
12
13
-(
void
) add: (
int
) n;
14
15
@end
01
#import "Calculate.h"
02
03
@implementation Calculate
04
05
-(
int
) num
06
{
07
return
num;
08
}
09
10
-(
void
) setNum: (
int
) n
11
{
12
num = n;
13
}
14
15
-(
void
) add: (
int
) n
16
{
17
num += n;
18
}
19
20
@end
1
$ gcc -o app2 Main.m Calculate.m -I/GNUstep/System/Library/Headers -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base
运行结果: 2012-11-21 22:17:51.207 app2[3144] 5 + 10 = 15
0 0
- Windows 下使用 GNUstep 编译并运行 Objective-C 程序
- Windows 下使用 GNUstep 编译并运行 Objective-C 程序
- Windows 下使用 GNUstep 编译并运行 Objective-C 程序
- Windows 下使用 GNUstep 编译并运行 Objective-C 程序
- 红薯 Windows 下使用 GNUstep 编译并运行 Objective-C 程序
- Windows系统中使用GNUstep 编译运行Objective-C程序
- windows下使用gnustep编译objective-c程序
- Windows下搭建GNUstep环境以及编译运行Objective-C
- 在 Windows 上安装和使用 GNUstep编译Objective-C
- Windows下使用GNUstep编写Object-C程序
- Linux下学objective c的好办法,在ubuntu下使用GNUstep make编译objective c
- 在Windows下搭建Objective-C运行环境(感谢GNUstep)
- objective-c : windows下搭建环境并编译自己的第一个objective-c程序
- Objective-C学习笔记1--windows+GNUstep环境下不能使用@autoreleasepool?
- 用GNUstep在windows下执行objective -c
- 在Windows上使用GNUstep和Objective-C
- 在 Windows 上安装和使用 GNUstep 和 Objective-C
- 在 Windows 上安装和使用 GNUstep 和 Objective-C
- Java多线程总结之线程安全队列Queue
- python urllib/urllib2/httplib/httplib2
- 网站数据统计 PV UV IP 是什么意思
- Extjs GridPanel 本地数据
- 使用jasig cas 时汉字乱码
- Windows 下使用 GNUstep 编译并运行 Objective-C 程序
- dm6437开发的网址资料集
- javascript事件模型框架-eventutil.js
- CSS切图
- Twitter联合创始人Biz Stone:如何变得更具创造力
- SVM vs Adaboost
- Robotium_Android Robotium Solo语法知识(2)
- 一些好的文章,网址
- matlab 均值和协方差