您的位置:首页 > 移动开发 > Objective-C

Windows下搭建Object-C开发环境

2012-07-18 15:39 78 查看
转载请注明出处,原文网址:[b]/article/1656870.html 作者:张燕广

[/b]

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: