object-c第一个程序:Hello World

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

1. 下载并安装开发环境 

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

PackageRequired?StableUnstableNotes
GNUstep MSYS SystemRequired0.28.1-MSYS/MinGW System
GNUstep CoreRequired0.28.0-GNUstep Core
GNUstep DevelOptional1.3.0-Developer Tools
Cairo BackendOptional0.22.1NoneDon'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界面如下:

启动时的路径是位于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来查看执行结果,如下图所示:

由于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,如下图:

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

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文件:

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

保存并关闭。这时再次在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目录也确实生成了:

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

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

./main.exe

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值