首页 > 代码库 > 龙芯8089D-Debian7 下搭建 Objective-C 编译环境

龙芯8089D-Debian7 下搭建 Objective-C 编译环境

龙芯8089D-Debian7 下搭建 Objective-C 编译环境

目录


  • 安装相关文件
  • 编译参数说明
  • 简化命令行参数
  • 实际编译实例

简单说明:Objective-C 的 C 文件后缀为 .m,头文件后缀为 .h,例如我们在本教程中的例程就是 main.m


安装相关文件

需要安装这些包:gccg++gobjcgnustepgnustep-develgnustep-gui-devlibgnustep-base-dev

安装命令很简单:

apt-get install gcc g++ gobjc gnustep gnustep-devel gnustep-gui-dev libgnustep-base-dev

安装完毕之后就可以进行下一步了。

编译参数说明

不同发行版的 Linux 下编译 Objective-C 的命令参数略有不同,在 Debian 下需要这几个参数:

`gnustep-config --objc-flags`
-fconstant-string-class=NSConstantString
-lobjc
-lgnustep-base

另外需要指定头文件(include文件)和库文件(lib文件)的位置,在 Debian 下,它们的位置分别为 /usr/include/GNUstep//usr/lib/GNUstep/,参数如下:

-I /usr/include/GNUstep/
-L /usr/lib/GNUstep/

把上述参数综合起来的编译命令如下:

gcc `gnustep-config --objc-flags` -fconstant-string-class=NSConstantString -lobjc -lgnustep-base -I /usr/include/GNUstep/ -L /usr/lib/GNUstep/ -o main main.m

但是每次输入这么多参数就有些繁琐了,接下来我们会把这一长串命令建立一个别名 alias

简化命令行参数

建立别名的命令如下:

alias objcc=‘gcc `gnustep-config --objc-flags` -fconstant-string-class=NSConstantString -lobjc -lgnustep-base -I /usr/include/GNUstep/ -L /usr/lib/GNUstep/‘

要把这个命令保存到系统的 ~/.bashrc 文件中,很简单,把这条命令拷贝到 .bashrc 中就可以了,然后执行一下:

source ~/.bashrc

以后编译 Objective-C 文件就可以使用别名 objcc 了,很简单:

objcc -o main main.m

注意:在这条别名命令里,分别使用了 单引号: ‘‘反引号: `` ,千万不要混淆。

实际编译实例

最后就是以一个实际的 Objective-C 程序例子来说明,下面是我们的例程 main.m 的内容:

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

把上述代码保存为 main.m,然后执行:

objcc -o main main.m

当前目录下就会生成一个名为 main 的可执行文件。

需要说明的是,这个可执行文件只能在 Debian 下运行,如果想在 Debian 下编译出能在 OSX 下运行的可执行文件,还需要一些额外的交叉编译参数,这里就不详述了。