object-c第一个程序:Hello World
来源:互联网 发布:mac系统装机必备软件 编辑:程序博客网 时间:2024/04/29 14:16
Objective-C是在C语言的基础上的扩展,是一种面向对象的编程语言。这里假设读者有面向对象的编程基础。
1. 下载并安装开发环境
到http://www.gnustep.org/experience/Windows.html下载以下四个文件:
并依次进行安装,安装路径最好是在根目录下没有中文以及空格的文件夹中,我的安装路径是D:\GNUStep
安装后的文件夹结构为:
- D:\GNUstep 的目录
- DIR> .
- <DIR> ..
- <DIR> bin
- <DIR> doc
- <DIR> GNUstep
- 48 GNUstep MSYS Windows System.url
- 3,899 gnustep-core-README.rtf
- 3,294 gnustep-devel-README.rtf
- 5,101 gnustep-system-README.rtf
- <DIR> include
- <DIR> lib
- <DIR> libexec
- <DIR> man
- <DIR> mingw
- <DIR> mingw32
- <DIR> msys
- <DIR> share
- 53,198 UninstallGNUstepCairo.exe
- 81,344 UninstallGNUstepCore.exe
- 68,162 UninstallGNUstepDevel.exe
- 4,329 UninstallGNUstepSystem.exe
- <DIR> var
2. 启动shell
打开开始->程序->GNUStep->Shell,shell界面如下:
启动时的路径是位于D:\GNUstep\msys\1.0\home\60377,其中60377为用户名,为了方便起见,我们后边直接将程序放到这个文件夹下,这里我们称之为HOME。
3. Hello World程序
在HOME中创建一个文件名为main.m的文件,其中m为扩展名,内容如下:
- #import <Foundation/Foundation.h>
- int main(int arvc, char* argv[])
- {
- NSLog(@"Hello World!");
- return 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命令查看是否生成了mian.exe文件,如果生成了,则在shell中输入main.exe来查看执行结果,如下图所示:
由于gcc命令太长,可以采用Makefile,具体如下:
在HOME中创建一个名为Makefile的文件,没有扩展名,内容如下:
- gen:
- 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也是可行的。
- object-c第一个程序:Hello World
- [C#] 第一个Hello World程序
- 2第一个C程序“Hello World”
- 第一个“Hello World”程序
- 第一个程序:"Hello World"
- 第一个程序:Hello World
- 第一个程序:Hello World
- Hello World 第一个程序
- 第一个程序“Hello World !”
- C语言上课笔记:第一个C程序Hello World
- 第一个Objective-C程序——Hello World!
- 编写第一个C语言程序-Hello World
- 小白学 c--2第一个程序 hello world
- 【C#】第一个C#程序——Hello World!
- Linux下编写第一个c语言程序hello world
- 第一个程序从Hello world!Objective-c 开始
- Object C 2.0 hello world 程序
- 第一个Java程序'Hello world'
- Oracle表分区:范围分区
- 解决win7下文件拖拽无效的问题
- c可变参数
- linux 日志编程(总结)
- Oracle.表分区:散列分区
- object-c第一个程序:Hello World
- 设计模式六大原则之单一职责原则
- Android_JSON解析
- iso开发协议和委托
- DNS 域名信息主动获取及备份系统的设计和实现
- Build and install gcc on FEDORA 14 X84_64
- 一日一点RakNet(52)--SQLite3Plugin
- Ubuntu init启动流程分析
- Oracle.表分区:列表分区