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

Windows环境下面搭建Objective C开发环境

2012-04-08 06:53 375 查看
==========================================

Magwin方法

1、安装编译器   

Objective-C的编译器有很多,其中LLVM属于从GCC发展出来的,主要使用在苹果的平台中,GNU可以使用GnuStep,网址是http://wwwmain.gnustep.org/,从这里可以下载Windows版本的gcc编译器,配合codeblocks可以编译调试object
c程序。

    



进入下载页面,下载上面3个软件包,安装,例如安装到D:\GNUstep,

2、安装CodeBlocks IDE环境

下载地址:http://www.codeblocks.org/

3、配置编译器

安装好codeblocks之后,进入Settings->Compiler and debugger...,选择GNU GCC Compiler编译器,复制重新命名为“GNUstep MinGW Compiler“配置

   



编译其他选项录入:-fconstant-string-class=NSConstantString -std=c99





同时指定搜索目录:

》编译器的搜索目录是D:\GNUstep\GNUstep\System\Library\Headers

》linker的搜索目录设置为D:\GNUstep\GNUstep\System\Library\Libraries,同时设置linker的参数:-lobjc -lgnustep-base 

或者可以在linker选项中加入D:\GNUstep\GNUstep\System\Library\Libraries下面的2个文件libgnustep-base.dll.a,libobjc.dll.a









设置编译器、连接器的搜索目录





4、配置语法、文件类型,关键字等

添加文件类型支持

1) 进入Settings->Environment...

2) 选择 Files extension handling 添加*.m

3) 进入 Project->Project tree->Edit file types & categories...

4) 在Sources, 下面添加 *.m到文件类型列表中.





添加语法高亮支持

1) 进入 Settings->Editor...

2) 选择 Syntax highlighting 进入Filemasks.... 添加*.m 到文件类型列表中.

3) 进入 Keywords... (紧靠Filemasks...) 添加下面的关键字到列表中

@interface @implementation @end @class @selector @protocol @public @protected @private id BOOL YES NO SEL nil NULL self
语法高亮中,加入*.m扩展名


 

5、代码测试

新建一个工程,修改main.c为main.m,录入下面代码

#import <Foundation/Foundation.h>

int main (int argc, const char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"%@",@"hello world");
[pool drain];
return 0;
}


编译运行效果如下:

2012-03-07 17:33:49.711 objc1[6080] hello world
Process returned 0 (0x0)   execution time : 0.220 s

Press any key to continue.
=============================================================================================================================

============================================================================================================================
转载地址:http://www.cnblogs.com/alex-tech/archive/2011/10/27/2227026.html

先學Objective-C吧~GNUstep環境安裝於Windows

在參考了幾本iPhone的教學書籍和史丹佛的iPhone開發課程前三章之後,果然還是覺得先從Objective-C的程式語言基礎開始。雖然對於C語言並不陌生,但Objective-C的語法和一些結構,似乎較於C語言又多了不少,尤其是2.0的新加入特性,是需要花些時間仔細學習。

GNUstep是一個不錯的選擇,這個是一個實作出Cocoa/OpenStep
APIs的跨平台開發環境,GNUstep可以在Linux和Windows平台下使用。拿來作學習Objective-C的練習平台是足夠的。GNUstep目前也支援Objective-C 2.0,但其中仍有一些差異性,可以看Stackoverflow和GNUstep
Google group的討論。

以下以Windows作業系統為例,說明如何建置一個練習Objective-C語言的環境。


1.安裝MinGW和GNUstep到Windows中

先到GNUstep的Windows版本下載頁面,下載GNUstep
System和GNUstep Core,這邊下載的是0.23.x以上的版本,然後安裝到自己的電腦上。System中就會帶有MinGW 這個開發環境和相關程式。






2.執行GNUstep的shell

在安裝完成後,應該會看到類似C:\GNUstep的目錄出現在你的電腦中(預設是裝在C磁碟下,如果是別的磁碟或目錄中,應該要有類似的安裝好的目錄出現)。這時候執行「開始→程式集→GNUstep→shell」後,會跳出以下的視窗,這個就是GNUstep的shell(中譯應為:交談式的命令環境),注意此時shell對應的目錄是在C:\GNUstep\home\Administrator\(因為我是使用Administrator登入Windows時安裝的,如果是用別的使用者帳號登入後安裝,應該是別的名稱的目錄C:\GNUstep\home\<username>)






3.執行第一個程式和使用Makefiles

以下是我們要用的第一支Objective-C程式的程式碼,把它貼到Notepad++或Ultra-Edit上,然後儲存到上面2.中的shell根目錄中,檔名為hello.m

hello.m
1
2
3
4
5
6
7
8
9
10

#import <Foundation/Foundation.h>
 
int main (int argc, const char * argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 
NSLog (@"hello world");
[pool drain];
return 0;
}

接下來你可以在shell中輸入以下的指令來compile(編譯)它,但輸入這麼多的確十分麻煩

1

gcc `gnustep-config --objc-flags` -L /GNUstep/System/Library/Libraries 

hello.m -o hello -lgnustep-base -lobjc

所以最好是用下面這種方式,使用Makefiles這個套件來協助編譯,將以下的程式碼貼到Notepad++或Ultra-Edit上,然後儲存到上面2.中的shell根目錄中,檔名為GNUmakefile(注意:沒有副檔名)
GNUmakefile
12
3
4
5
6

include $(GNUSTEP_MAKEFILES)/common.make
 
TOOL_NAME = LogTest
LogTest_OBJC_FILES = hello.m
 
include $(GNUSTEP_MAKEFILES)/tool.make

然後在shell中輸入「make」就可以看到以下的畫面,沒有出現錯誤就是編譯完成了,在hello.m的目錄下會出現一個新增的obj目錄,裡面會有一個LogTest.exe。

再輸入「./obj/LogTest」(注意:指令最前面有一個點)就可以看到以下的執行結果。





當然make是很聰明的指令,每次你如果有更改原始碼,再執行make後,它會重新再編譯一個新的執行檔出來。如果你要強制清除編譯的結果,可以執行「make
clean」

最後的說明:

上面的GNUmakefile這個檔案中的第3和4行的LogTest,和編譯出來的執行檔名有關,如果你要更改編譯出的檔案名稱,記得這兩行都要一起更改才行。更多的Makefiles用法可以參考下面的參考資料。

參考資料:

Installing
and using GNUstep and Objective-C on Windows

Writing
GNUstep Makefiles

==========================================================================

GNUstep



1:  GNUstep

  首先,目前windows下没有Objective-C的IDE存在,ObjectiveEClipse是一款可选择的插件,搭配Eclipse3.5+CDT6.0,但是已经停止更新。GNUstep是提供类似Cocoa(苹果OS的开发框架)的API和工具,目前支持GNU/Linux and GNU/HURD, Solaris, NetBSD,
OpenBSD, FreeBSD, Darwin和Windows,免费使

用。这个项目使Objective C能在多数流行平台上开发和运行。

 

 首先,目前windows下没有Objective-C的IDE存在,ObjectiveEClipse是一款可选择的插件,搭配Eclipse3.5+CDT6.0,但是已经停止更新。GNUstep是提供类似Cocoa(苹果OS的开发框架)的API和工具,目前支持GNU/Linux
and GNU/HURD, Solaris, NetBSD, OpenBSD, FreeBSD, Darwin和Windows,免费使用。这个项目使Objective C能在多数流行平台上开发和运行。

  在Windows下搭建Objective C开发环境,需要到GNUstep官方网站上下载,四个软件包:GNUstep
MSYS System、GNUstep
Core、GNUstep
Devel、Cairo
Backend。其中,前两个软件包是必须要安装的,第三个软件包是安装一些开发工具,比如:gcc、g++等,所以如果是学习Objective C的话,这个包也是必须要安装,第四个软件包是安装glib等库,这个包安装不安装根据具体情况而定。安装路径不建议出现中文,安装后在环境变量PATH中增加: C:\GNUstep\GNUstep\System\Tools;C:\GNUstep\bin;C:\GNUstep\mingw\bin,安装后运行GNUstep shell也就是安装目录下的msys.bat。测试一下gcc与make命令。

测试程序 

1  #import <Foundation/Foundation.h>
2  int main (int argc, const char *argv[]) {
3  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
4  NSLog(@"Hello World!");
5  [pool drain];
6  return 0;
7  }


复制代码

编译链接

 1:直接gcc编译链接方式

  gcc -o test test.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -fconstant-string-class=NSConstantString

  其中:

    -I /GNUstep/System/Library/Headers  指明编译期间头文件包含目录

    -L /GNUstep/System/Library/Libraries 指明连接的库文件

    -lobjc链接属性,这样就不必显示的链接libobjc.a库,gcc收到这个链接属性会为我们完成这些事。

    -fconstant-string-class=NSConstantString指定常量字符串类型为NSConstantString

2:GNUmakefile方式

  写GNUmakefile如下:

  GNUSTEP_MAKEFILES=/GNUstep/System/Library/Makefiles
  include $(GNUSTEP_MAKEFILES)/common.make
  TOOL_NAME = test
  test_OBJC_FILES = ./main.m
  include $(GNUSTEP_MAKEFILES)/tool.make


复制代码

 注:其中TOOL_NAME定义为工程名称test,test_OBJC_FILES定义编译文件列表

   在GNUmakefile目录下执行make命令,得到可执行文件。

3:搭配IDE,选用CodeBlocks

编译器设定

 使用GNUStep安装的gcc,在C:\GNUstep\bin目录下。

1)   Settings->Compiler and debugger...

2)   选择GNU GCC Compiler点击copy,重新命名,例如"GNU
GCC Obj-C Compiler"

3)   设定GNU GCC Compiler的Toolchain
executables路径为C:\GNUstep\bin,也就是GNUstep的gcc所在目录。


4)   Compile settings->Other
options添加-fconstant-string-class=NSConstantString

5)    Linker Settings->Other
Link Options中添加-lobjc -lgnustep-base选项。

  如果出现问题,则可以选用另一种方式,去掉-lobjc -lgnustep-base选项,在Linker Settings->Link libraries中添加:

  C:/GNUstep/GNUstep/System/Library/Libraries/libobjc.dll.a  

  C:/GNUstep/GNUstep/System/Library/Libraries/libgnustep-base.dll.a

6)   Search directories->Complier添加头文件目录: C:\GNUstep\GNUstep\System\Library\Headers

 


添加源文件格式支持

1) Environment...,选择Files
extension handling添加 *.m和*.mm

2)Project->Project
tree, file types & categories...在Source中添加*.m和*.mm

 


高亮显示

1) Settings->Editor->Syntax
highlighting

2) 选择Filemasks...,添加*.m和*.mm

3) 选择 Keywords... 添加Keywords到列表框中

Keywords:

@interface @implementation @end @class @selector @protocol @public @protected @private id BOOL YES NO SEL nil NULL self





设置为可编译链接

1) .m文件右键->Properties

2) 选择build,选中 Compile file 和 Link
file

3) 选择general,去除对File is read-only的选中

4) 注意,.h文件不要设置Compile
file 和 Link file
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: