object-c第一个程序:Hello World

Objective-C是在C语言的基础上的扩展,是一种面向对象的编程语言。这里假设读者有面向对象的编程基础。

1. 下载并安装开发环境 

到http://www.gnustep.org/experience/Windows.html下载以下四个文件:

Package Required? Stable Unstable Notes
GNUstep MSYS System Required 0.28.1 - MSYS/MinGW System
GNUstep Core Required 0.28.0 - GNUstep Core
GNUstep Devel Optional 1.3.0 - Developer Tools
Cairo Backend Optional 0.22.1 None Don't Use. Developer Only

并依次进行安装,安装路径最好是在根目录下没有中文以及空格的文件夹中,我的安装路径是D:\GNUStep

安装后的文件夹结构为:

[plain]  view plain copy
  1. D:\GNUstep 的目录  
  2.   
  3. DIR>         .  
  4. <DIR>        ..  
  5. <DIR>        bin  
  6. <DIR>        doc  
  7. <DIR>        GNUstep  
  8.              48 GNUstep MSYS Windows System.url  
  9.              3,899 gnustep-core-README.rtf  
  10.              3,294 gnustep-devel-README.rtf  
  11.              5,101 gnustep-system-README.rtf  
  12. <DIR>        include  
  13. <DIR>        lib  
  14. <DIR>        libexec  
  15. <DIR>        man  
  16. <DIR>        mingw  
  17. <DIR>        mingw32  
  18. <DIR>        msys  
  19. <DIR>        share  
  20.              53,198 UninstallGNUstepCairo.exe  
  21.              81,344 UninstallGNUstepCore.exe  
  22.              68,162 UninstallGNUstepDevel.exe  
  23.              4,329 UninstallGNUstepSystem.exe  
  24. <DIR>        var  

2. 启动shell
打开开始->程序->GNUStep->Shell,shell界面如下:

object-c第一个程序:Hello World_第1张图片

启动时的路径是位于D:\GNUstep\msys\1.0\home\60377,其中60377为用户名,为了方便起见,我们后边直接将程序放到这个文件夹下,这里我们称之为HOME。

3. Hello World程序

在HOME中创建一个文件名为main.m的文件,其中m为扩展名,内容如下:

[cpp]  view plain copy
  1. #import <Foundation/Foundation.h>  
  2.   
  3. int main(int arvc, char* argv[])  
  4. {  
  5.     NSLog(@"Hello World!");  
  6.     return 0;  
  7. }  

然后在shell中输入:

[plain]  view plain copy
  1. gcc -o main main.m -I/GNUstep/System/Library/Headers/ -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base  

然后可以通过ls命令查看是否生成了mian.exe文件,如果生成了,则在shell中输入main.exe来查看执行结果,如下图所示:

object-c第一个程序:Hello World_第2张图片

由于gcc命令太长,可以采用Makefile,具体如下:

在HOME中创建一个名为Makefile的文件,没有扩展名,内容如下:

[plain]  view plain copy
  1. gen:  
  2.     gcc -o main main.m -I/GNUstep/System/Library/Headers/ -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base  

注意:gcc前边是一个tab。

然后在shell中执行make命令,会自动生成main.exe,如下图:

object-c第一个程序:Hello World_第3张图片

4. 小结
本节仅介绍了环境安装和hello world程序,后边再讲解语法等内容。









在shell中输入如下命令出错:

gcc -o main main.m -I/GNUstep/System/Library/Headers/ -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base

object-c第一个程序:Hello World_第4张图片

C:/GNUstep/GNUstep/System/Library/Headers/Foundation/NSException.h:44:2: error: 
#error The current setting for native-objc-exceptions does not match that of gnu 
step-base ... please correct this.

说现在对native-objc-exceptions的设置与gnustep-base不匹配,native-objc-exceptions、gnustep-base是什么东东?又要在哪里设置呢?

遇到问题我们一定不要灰心、害怕,要坚信没有解决不了的问题!

 

问题解决

我们要在C:\GNUstep\GNUstep\System\Library\Headers\GNUstepBase(请根据你的安装路径自行修改)中找到GSConfig.h文件:

object-c第一个程序:Hello World_第5张图片

用记事本、EditPlus、Notepad++等等打开,找到BASE_NATIVE_OBJC_EXCEPTIONS(没错,这就是上面的native-objc-exceptions),将其键值由1改为0:

object-c第一个程序:Hello World_第6张图片

保存并关闭。这时再次在shell中输入:

?
gcc -o main main.m -I/GNUstep/System/Library/Headers/ -fconstant-string-class=NSConstantString -L/GNUstep/System/Library/Libraries -lobjc -lgnustep-base

没有看到错误提示,哈哈,好像成功了,再输入ls命令看到生成了main.exe,打开home目录也确实生成了:

object-c第一个程序:Hello World_第7张图片

object-c第一个程序:Hello World_第8张图片

没错,我们看到又出错了!我们执行main.exe,它却说命令没有找到。。。

没事儿,很好解决,我们在前面加上./,如下:

./main.exe

object-c第一个程序:Hello World_第9张图片

这样就成功了!如上图,输入./main也是可行的。


你可能感兴趣的:(object-c第一个程序:Hello World)