Object C 开发基础
一、配置环境
如果是在Mac OS X 下就是 Xcode了,apple.com上有下载,应该是不到3GB 吧。。
如果是在其他环境,如Win下,就是GNUStep了,我的是Win32,那就安装GNUstep System和GNUstep core这样就有了Mingw的gcc编译器和ObjectC的头文件 Foundation以及Apple kit等的头文件了.
然后写个gcc.sh(从其他人那里学的,其实挺方便,至于原创就不知道了)
#!/bin/sh if [ $# -ne 1 ]; then echo "Usage: $0 name" exit 1 fi
gcc -g -o $1.exe $1 \ -fconstant-string-class=NSConstantString \ -I /GNUstep/System/Library/Headers/ \ -L /GNUstep/System/Library/Libraries/ \ -lobjc \ -lgnustep-base exit 0
|
再写个makem.sh,我原创的,为了方便,制作一个m文件的模板
#!/bin/sh
#判断没有参数 if [ $# -ne 1 ]; then echo "Usage: $0 FileName.m" exit 1 fi #以下是判断存在文件的情况 if [ -f $1 ];then echo "Warnning: 存在$1文件,是否替换?[y/n]" read select echo "if [ \"$select\" = \"n\" -o \"$select\" = \"N\" ];then" if [ "$select" = "n" -o "$select" = "N" ];then echo Not Write the file $1.. exit 0 fi fi #以下是在满足条件下,生成模板 echo "#import ">$1 echo "">>$1 echo "int main(int argc,const char *argv[])">>$1 echo "{">>$1 echo " ">>$1 echo "}">>$1 echo Having make $1 object M File exit 0
|
运行make hello.m ;然后vi或者其他编辑器打开hello.m,添加NSLog(@"Hello,world");
运行gcc.sh hello.m
有点提示,但不是错误,然后ls,看看有了hello.m.exe,执行./hello.m.exe
Administrator@AYANMW-XP ~/ $ gcc.sh hello.m Info: resolving ___objc_class_name_NSConstantString by linking to __imp____objc_ class_name_NSConstantString (auto-import) e:/gnustep/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe:wa rning: auto-importing has been activated without --enable-auto-importspecified on the command line. This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
Administrator@AYANMW-XP ~/ $ ./hello.m.exe 2010-04-05 15:09:26.899 hello.m[3852] hello,world
|
二、开始ObjectC学习
我看着Objective-C基础教程(Learn Objective-C on the Mac)这本书学习,图形界面暂时不考虑,不知道GNUstep可以开发图形界面不..也不知道有没有图形IDE for objectC By GNUstep.
--Insert
看了我的另一篇文章,应该就可以知道,GNUstep当然有图形界面编辑器了,还有项目管理app,就是Gorm和ProjectCenter,这对于学习这个开发来说实在是太重要了!!
再提供一个GNUstep官方的swf视频,共11mb,可在url去掉文件名可以查看服务器的文件(然后单独下载那个swf文件,我认为应该多点这样的教程,太好了!):
这个swf视频demo教程需要用到GNUstep基本环境,Gorm和ProjectCenter应用程序app.
阅读(3495) | 评论(0) | 转发(0) |