1、安装GNU Objective-C
编译器:
sudo pacman -S gobjc
2、安装gmake工程化的构建工具:
sudo pacman -S make
3、安装gnustep-make
:
sudo pacman -S gnustep-make
4、安装gnustep-base
:
sudo pacman -S gnustep-base
安装目录是/usr/share/GNUstep/
安装完成后,有两个命令可以使用:/usr/bin/gnustep-config
、/usr/bin/gnustep-tests
5、设置GNUstep
环境:
source /usr/share/GNUstep/Makefiles/GNUstep.sh
每次打开Terminal都必须重新执行一次,所以, 您可以把这句命令放到.bashrc
中,让bash启动的使用自动执行它。
创建一个文件夹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;
}
GCC编译器是老牌的编译器,它支持Objective-C 1.0的语法。
使用GCC编译的命令如下:
gcc `gnustep-config --objc-flags` -o HelloOC HelloOC.m -lobjc -lgnustep-base
Xcode里面最早使用的编译器是GCC, 后来,苹果开发了LLVM,逐步替代了GCC。
Objective-C 2.0
增加了一些重要的功能,所以,我们一般都会使用这些功能。为了使用这些功能,我们必须使用Clang进行编译。因为GCC不支持Objective-C 2.0
的语法。
使用Clang编译的命令如下:
clang `gnustep-config --objc-flags` -o HelloOC HelloOC.m -lobjc -lgnustep-base -I /usr/lib/gcc/x86_64-linux-gnu/5/include/
1、在HelloOC.m
同一个目录下,创建一个叫做GNUmakefile
的文本文件,内容如下:
GNUSTEP_MAKEFILES = /usr/share/GNUstep/Makefiles
include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME = HelloOC
HelloOC_OBJC_FILES = HelloOC.m
include $(GNUSTEP_MAKEFILES)/tool.make
注意:文件名一定是GNUmakefile
,注意大小写!
有Linux C
开发经验的同学应该对这个GNUmakefile
不陌生, 它是gmake这个自动化工具的配置文件。gmake其实与早期Java开发中的Ant,Android开发中的gradle、Java EE开发中的Maven这些工具是一样的, 他们都是自动化工具,只是,这些工具通常是用来构建项目,所以,被称为项目构建工具。
使用项目构建工具有很多好处:配置文件可与源代码一起被版本控制工具管理, 编译的时候只需要一个make
命令就编译好了,并非常简单,这对于大型项目非常有用。
现在,我们的工程结构如下:
2、下面使用gmake命令进行编译:
make
3、运行效果如下:
4、编译完成后,我们再看一下工程的目录结构:
生成的可执行文件在obj
目录下。
5、运行效果如下:
与在Xcode中运行效果是一样的。
上面我们分别用GCC、Clang、gmake进行编译项目,这是常见的编译方式。
至此,您就可以在ArchLinux下享受Objective-C开发之旅了,好好发挥您的想象吧!