• Windows 下的 ObjectiveC 开发环境配置简介


    我也是黑苹果一族,不买 Mac 的原因各不相同,这里就不说了。即便是装了黑苹果,由于需要在 Windows 上长时间工作,就想能不能在 Win 上弄个 OC 的编译环境,这样可以方便学习 OC,省的来回切换。

    这篇文章的大部分内容均来自于网上,具体可参见《参考》部分。本文是作者在实际使用后整理所得,如有疏漏,请不吝赐教,谢谢。

    安装

    上网搜了搜,这方面的资料真是不少,必备的东东是 GNUstep Developer Tools,可以参考这个链接 Windows Installer,安装很简单,按照顺序 GNUstep System、GNUstep Core、GNUstep Developer 安装即可,过程就不表述了。

    安装完成后,我们可以用“程序 -> GNUstep -> Shell” 来启动一个模拟 UNIX 控制台,在这下面可以完成开发、编译、执行等工作。

    开发

    首先我们来写一个 HelloWorld,简单起见,我们在 C 盘根目录下创建 HelloWorld.m 文件,并保存,代码如下:

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

    注:关于用什么工具来编写代码,由于我也是初次使用,并没有特别好的工具推荐,我自己使的是 UltraEdit。


    编译

    由于 HelloWorld.m 是在 C 盘根目录下,所以首先我们将路径切换到 C 盘根目录:

    [plain] view plaincopy
    1. $cd C:\  

    注:cd 这种方式同样适用于切换到任意驱动器或任意子目录下,路径的组织结构与 windows 没有区别,不区分大小写。

    编译成目标码

    [plain] view plaincopy
    1. gcc -fconstant-string-class=NSConstantString -c HelloWorld.m -I /GNUstep/System/Library/Headers  
    执行上面的命令后,控制台不会有任何输出,这是正确的,否则你需要去检查原因了。同时在 C 盘根目录下会生成一个 HelloWorld.o 的目标文件,在下一步,我们将用它来编译成可执行文件。

    编译成可执行文件

    [plain] view plaincopy
    1. gcc -o HelloWorld HelloWorld.o -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base  
    C 盘根目录下会生成 HelloWorld.exe

    执行

    我们可以直接在 Windows 控制台下执行 HelloWorld.exe,也可以在 Shell 窗口中执行:

    在 Shell 窗口输入:

    [plain] view plaincopy
    1. ./HelloWorld.exe  

    输出如下:

    [plain] view plaincopy
    1. 2011-09-23 13:22:42.828 helloworld[5484] Hello World!  

    关于工作路径

    我们做开发时,项目不可能放在 C 盘根目录下,一般都是有组织的,那么如何编译这类的文件呢?其实方法很简单,使用 cd 命令,进入到 .m 所在的目录下,然后执行编译。

    Make

    上面的编译过程很繁琐,稍有不慎就可能输入错误,造成编译失败,其实还有一个更简单的方法,就是建立一个 make 文件,对于 GNUstep 来说,make 文件名必须是“GNUmakefile”,内容如下:

    1. include $(GNUSTEP_MAKEFILES)/common.make   
    2.   
    3. TOOL_NAME=HelloWorld<strong>  
    4. </strong>HelloWorld_OBJC_FILES=HelloWorld.m    
    5.   
    6. include $(GNUSTEP_MAKEFILES)/tool.make   


    HelloWorld 关键字部分为可替换为实际内容。GNUmakefile 文件要求与 .m 文件在同一目录下。

    make 的执行很简单,进入 “GNUmakefile” 所在的目录,在 Shell 窗口中执行 “make” 即可。这会在 “GNUmakefile” 所在目录下生成一个 obj 目录,obj 下包含了可执行文件和目标文件等。

    后记

    简简单单,基本上没什么波折,就是工作路径的问题烦了我一下,因为有人说在 GNUstep 安装目录下会有一个 “C:\GNUstep\home\username” 目录,可我安装后并没有类似的东东,也许是版本不一致或是别的什么原因吧,这已经不是问题了。

    注:上面的问题是这样的,后来我发现这个 HOME 还是有的,启动 shell 后,输入 pwd 命令,得到当前工作路径为 /home/username,实际位置位于 “D:\GNUstep\msys\1.0\home\username”。

    参考

    1. Objective-C:GCC+GNUstep配置 - 兔子吃南瓜
    2. Windows下编译objective-C 
  • 相关阅读:
    第十四回 基础才是重中之重~委托实例的几种定义方式(规规矩矩method,逻辑简单delegate,层次清晰lambda)
    第十五回 基础才是重中之重~老赵写的CodeTimer是代码性能测试的利器
    第十一回 基础才是重中之重~Conditional特性使代码根据条件在debug或者release模式中执行
    第十二回 基础才是重中之重~.net中的显式事务与隐式事务
    IE绝对定位元素神秘消失或被遮挡的解决方法
    图片按钮样式隐藏文字的
    javascript 保留小数
    Javascript兼容性问题小结(容易导致浏览器不同,又不容易察觉的)
    SQL 随机选取10条数据
    动态添加类和元素样式属性(style and className)
  • 原文地址:https://www.cnblogs.com/linyawen/p/2441040.html
Copyright © 2020-2023  润新知