利用GNUstep在windows下编写object-c

首先看下GNUstep来自百度百科的特点介绍:

目前 GNU GCC 3.x 支援 Objective-C 语言, GNUstep 则提供 GNUstep Make 来简化编译 Objective-C 程式. GNUstep Make 提供类似 Makefile 的功能, 称为 GNUmakefile. 与 Makefile 相比较之下 GNUmakefile 简单许多.
  综合上述, GNUstep 实作 OpenStep 介面, 该介面已在商业市场上使用多年, 目前并演进成 MacOS X 的 Cocoa 环境. GNUstep 包含四个主要部份, 统称为核心 (Core):
  1. GNUstep Make: 提供类似 Makefile 的功能, 称为 GNUmakefile, 较 Makefile 好用许多.
  2. GNUstep Base: 提供 OpenStep 的 Foundation 程式库, 处理非图形介面的功能.
  3. GNUstep GUI: 提供 OpenStep 的 AppKit 程式库, 处理图形介面的功能.
  4. GNUstep Back: 提供与作业系统相关的后端处理, 提供 GNUstep GUI 有关绘图及字型的功能.
  简单的说 GNUstep 其实也是要打造类似 KDE 或 GNOME 的整合式环境,只是说它用 的程式语言是 Object C , 而本身也有一套 GUI Toolkits 来开发,当然先进的物件导向设计是最让人印象深刻的。

官方介绍:http://www.gnustep.org/

The purpose of this project is to create a free and open version of the Cocoa (formerly known as NeXTSTEP/OpenStep) APIs and tools for as many platforms as possible.

GNUstep provides a robust implementation of the AppKit and Foundation libraries as well as the development tools available on Cocoa, including Gorm 
(the InterfaceBuilder) and ProjectCenter (ProjectBuilder/Xcode). GNUstep currently supports Unix (GNU/Linux and GNU/HURD, Solaris, NetBSD, OpenBSD, FreeBSD, Darwin)
and Windows.

 

下面我们介绍一下在windows下安装与使用,我的系统是 windows xp

1.下载windows版的安装包 http://www.gnustep.org/experience/Windows.html

2.从上向下安装,软件的默认安装目录是c:\GNUstep,我选择了D:\GNUstep,在安装过程中,软件的安装选项都可以选择默认项

3.软件都安装完成之后,在开始菜单->所有程序->GNUstep->shell,会弹出一个cmd命令窗口

4.我们可以通过vim helloworld.m 创建一个helloworld文件,或者我们可以通过其他的IDE工具,在d:\GNUstep\msys\1.0\home\<username>下创建文件,其中<username>是系统的登录用户名,我的就是默认的d:\GNUstep\msys\1.0\home\Administrator,第一个代码如下,代码不做解释,今天的重点就是讲下GNUstep的使用

#import <Foundation/Foundation.h>  
  
int main(char argc, char* argv[]) {  
    NSLog(@"hello world");  
    return 0;  
}

 5.创建helloworld.m完成后,在命令行运行

1     gcc -o helloworld helloworld.m \  
2     -fconstant-string-class=NSConstantString \  
3     -I /GNUstep/System/Library/Headers/ \  
4     -L /GNUstep/System/Library/Libraries/ \  
5     -lobjc \  
6     -lgnustep-base  

特别注意:Be very careful about the -lobjc and -lgnustep-base switch, they must appear after file name "helloworld.m", helloword.m必须要在-lobjc and -lgnustep-base的前面

6.如果不报错误的情况下,会创建一个helloword.exe文件,我的是一次运行成功,但是在网上也看到有人运行后会报错,如下

解决办法D:\GNUstep\GNUstep\System\Library\Headers\GNUstepBase\GSConfig.h中,找到

#define BASE_NATIVE_OBJC_EXCEPTIONS     1=》#define BASE_NATIVE_OBJC_EXCEPTIONS     0
之后从新编译

7.运行helloworld.exe

 

按照上面的安装,通过shell命令是没有问题,可以当运行gorm和projectCenter时,运行不起来,后来全部卸载,默认安装到c盘,gorm能够正常运行,可是projectCenter提示gnustep-gui-0_22.dll找不到,上网搜索就是找不到这个文件,估计是安装版本的问题,之后恢复到旧版本如下:

gnustep-system-0.22.0-setup.exe,gnustep-core-0.22.0-setup.exe,gnustep-devel-1.0.0-setup.exe,gorm-1.2.8-setup.exe,ProjectCenter-0.5.0-setup.exe

再次运行,一切ok!新版本找不到文件,待解决。

 

参考:http://blog.lyxite.com/2008/01/compile-objective-c-programs-using-gcc.html

      中文参考站:http://www.nongnu.org/gstutorial/zh_TW/index.html

 

 

posted @ 2012-11-12 14:48  daly2008  阅读(2189)  评论(2编辑  收藏  举报