转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/7759419 作者:张燕广
1、 开发环境搭建请参考
http://wenku.baidu.com/view/9ffed817f18583d0496459ca.html
ps:
1)如果没有积分无法下载上面的文档,又不想设置的时候自己敲写,先贴出我的设置,你可以copy了:
GNUstep MinGW Compiler -fconstant-string-class=NSConstanString -std=c99 D:\GNUstep\GNUstep\System\Library\Libraries\libgnustep-base.dll.a D:\GNUstep\GNUstep\System\Library\Libraries\libobjc.dll.a D:\GNUstep\GNUstep\System\Library\Headers D:\GNUstep\GNUstep\System\Library\Libraries @interface @implementation @end @class @selector @protocol @public @protected @private id BOOL YES NO SEL nil NULL self
2)codeblocks有两个版本,都是可以的。
codeblocks-10.05mingw-setup.exe
codeblocks-10.05-setup.exe
3)如果参考上面文档中的说明你的搭建过程非常顺利,下面就没有必要再看了,如果你乐意请留言告知,好让我知道自己搭建过程为啥如此悲催?哼哼,不过我猜你十之八九是不顺利滴,请往下看吧~
2、 创建测试工程
1) File->New->Project,选择”Consoleapplication”,如图:
2) 选C,如图:
3) 输入工程名称,选择存放路径(我的工程路径为:D:\ObjC),如图:
4) 选择编译器,如图:
5) 在Windows资源管理器中目录D:\ObjC\HelloWorld下创建main.m
从工程中移出main.c,添加main.m
在main.m中添加如下代码:
#import<Foundation/Foundation.h> int main(int argc,const char* argv[]){ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init]; NSLog(@"%@",@"Hello Object-C!"); [pool drain]; return 0; }
6) 选中工程,右键Build工程, Build log如下:
-------------- Build: Debug in HelloWorld---------------
Linking stage skipped (build target has no object files to link)
Nothingto be done.
通过log可以得出结论,该工程没有任何源文件可供编译。
7) 在main.m上右键选择”Properties”,作如下设置:
再次build工程,出现错误:
D:\ObjC\HelloWorld\main.m:4:5: error:cannot find interface declaration for 'NSConstanString'
8) 选中工程,右键选择“Build options”,发现当前工程的编译器虽然是“GNUstep MinGWCompiler”,但是之前参考
http://wenku.baidu.com/view/9ffed817f18583d0496459ca.html做的编译器相关设置在这里并没有生效,如图:
,好吧,再做一次吧~……
9) 再次Build工程,依然是刚才的错误:
D:\ObjC\HelloWorld\main.m:4:5:error: cannot find interface declaration for 'NSConstanString'
10) 再次选中工程,右键选择“Buildoptions” 将当前工程的编译器选择为“GNU GCC Compiler“(疑惑1:这一步很是奇怪,不知道是”GNUstep MinGW Compiler“copy的过程中该编译器出现了问题还是设置过程中出现了问题)
同时,将编译器设置中的
-fconstant-string-class=NSConstanString-std=c99修改为
-fconstant-string-class=NSConstantString-lobjc -lgnustep-base(疑惑2:一旦编译工程成功后再次将设置修改为前者,依然可以成功编译)
这时候再Build工程就一切OK了,效果如下所示:
ps:1)如果再次新建一个工程,仍然需要上面那一番烦人的设置工作。
2)还没有深入研究codeblocks(哼哼,准备用mac用Xcode了,估计也不会再深入研究了),或许有其他方便的设置,如果你知道不妨分享一下。
3)如果*.m文件图标上显示一个小锁无法编辑,请在Windows资源管理器中将该文件“只读“属性去掉。
4)每次新建的*.m文件都需要设置属性中的“Compile file“和”Link file”属性,很是麻烦。
5)据我测试,该编译环境不支持Object-C2.0。