在Windows上使用GNUstep开发Objective-C程序
1.0、参考

需要安装GNUstep MSYS SystemGNUstep CoreGNUstep Devel等三个软件。

这三个软件的下载地址:http://www.gnustep.org/windows/installer.html

1.1、下载和安装GNUstep MSYS System

1、下载GNUstep MSYS System

http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-msys-system-0.30.0-setup.exe

2、安装GNUstep MSYS System

按照默认,一路点击"下一步"即可完成安装。

1.2、下载和安装GNUstep Core

1、下载GNUstep Core

http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-core-0.35.0-setup.exe

2、安装GNUstep Core

按照默认,一路点击"下一步"即可完成安装。

1.3、下载和安装GNUstep Devel

1、下载GNUstep Devel

http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/gnustep-devel-1.4.0-setup.exe

2、安装GNUstep Devel

按照默认,一路点击"下一步"即可完成安装。

这3个软件依次安装完成后,默认安装在了C:\GNUstep\目录下了,如下:

1.4、打开命令行

通过"开始 -> 所有程序 -> GNUstep -> shell"打开如下界面:

GNUstep Devel里面包含了bash里的绝大多数命令, 还有Vimgccg++GNU make,所以这些命令都可以在这里执行。

GNUstep Devel里面包含了Vim,对它熟悉的话, 可以使用它进行开发,当然我们也可以使用notepad(记事本)进行简单的开发。

GNUstep Devel自带的Vim的版本比较老了,你最好安装最新的vim for windows,然后打开C:\GNUstep\msys\1.0\etc\profile,添加下面这句配置:

alias vim='/c/Program\ Files/Vim/vim80/vim.exe'

重启终端,这样就可以使用最新功能的Vim了。

另外需要注意的是访问Vindows里的C盘是/c/。其他盘类似。

1.5、编写Objective-C源代码

创建一个文件夹HelloOC用于存放源代码:

mkdir HelloOC && cd HelloOC

创建一个叫做HelloOC.m的文本文件,内容如下:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    NSLog(@"Hello Objective-C");

    [pool drain];

    return 0;
}
1.6、使用gcc进行编译

GCC编译器是老牌的编译器,它支持Objective-C 1.0的语法。

使用GCC编译的命令如下:

gcc `gnustep-config --objc-flags` -o HelloOC HelloOC.m -L /GNUstep/System/Library/Libraries -lgnustep-base -lobjc
1.7、使用clang进行编译

Xcode里面最早使用的编译器是GCC, 后来,苹果开发了LLVM,逐步替代了GCC

LLVM编译器的前端可以是GCC,也可以是Clang

Objective-C 2.0增加了一些重要的功能,所以,我们一般都会使用这些功能。为了使用这些功能,我们必须使用Clang进行编译。因为GCC不支持Objective-C 2.0的语法。

使用Clang编译的命令如下:

clang `gnustep-config --objc-flags` -o HelloOC HelloOC.m -L /GNUstep/System/Library/Libraries -lgnustep-base -lobjc -I /usr/lib/gcc/x86_64-linux-gnu/5/include/
1.8、使用make进行编译

1、在HelloOC.m同一个目录下,创建一个叫做GNUmakefile的文本文件,内容如下:

GNUSTEP_MAKEFILES = C:\GNUstep\GNUstep\System\Library\Makefiles

include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME = HelloOC
HelloOC_OBJC_FILES = HelloOC.m

include $(GNUSTEP_MAKEFILES)/tool.make

注意:文件名一定是GNUmakefile,注意大小写!

Linux C开发经验的同学应该对这个GNUmakefile不陌生, 它是GNU make这个自动化工具的配置文件。GNU make其实与早期Java开发中的AntAndroid开发中的gradleJava EE开发中的Maven这些工具是一样的, 他们都是自动化工具,只是,这些工具通常是用来构建项目,所以,被称为项目构建工具。

使用项目构建工具有很多好处:配置文件可与源代码一起被版本控制工具管理, 编译的时候只需要一个make命令就编译好了,并非常简单,这对于大型项目非常有用。

现在,我们的工程结构如下:

2、使用make命令进行编译:

make

3、运行效果如下:

4、编译完成后,我们再看一下工程的目录结构:

生成的可执行文件在obj目录下。

5、运行效果如下:

与在Xcode中运行效果是一样的。

1.9、总结

上面我们分别用GCCClangGNU make进行编译项目,这是常见的编译方式。

至此,您就可以在Windows下享受Objective-C开发之旅了,好好发挥您的想象吧!