轉載地址: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
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中添加如下代碼:
[cpp] view plaincopy
#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。