转载地址:http://blog.csdn.net/m_changgong/article/details/7759419

翻遍了,只有这位仁兄的最好。


转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/7759419 作者:张燕广

1、 开发环境搭建请参考

      http://wenku.baidu.com/view/9ffed817f18583d0496459ca.html

ps:

1)如果没有积分无法下载上面的文档,又不想设置的时候自己敲写,先贴出我的设置,你可以copy了:

[plain] view plaincopy

  1. GNUstep MinGW Compiler  

  2. -fconstant-string-class=NSConstanString -std=c99  

  3. D:\GNUstep\GNUstep\System\Library\Libraries\libgnustep-base.dll.a  

  4. D:\GNUstep\GNUstep\System\Library\Libraries\libobjc.dll.a  

  5. D:\GNUstep\GNUstep\System\Library\Headers  

  6. D:\GNUstep\GNUstep\System\Library\Libraries  

  7. @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中添加如下代码:

[cpp] view plaincopy

  1. #import  

  2. int main(int argc,const char* argv[]){  

  3.    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];  

  4.    NSLog(@"%@",@"Hello Object-C!");  

  5.    [pool drain];  

  6.    return 0;  

  7. }  


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。