`
loovle
  • 浏览: 142691 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

linux上写obj-c程序

阅读更多
Ubuntu配置环境极其简单,安装GNUstep需要以下命令:
sudo apt-get install gnustep gnustep-devel
安装好了以后,我们就可以开发Objective-c程序了!
为了演示方便,我这里写一个叫Test的程序,新建一个目录在~/test,源文件code.m代码如下:
代码:
#import <Foundation/NSString.h>
#import <stdio.h>
int main(int argc, char *argv[]){
    NSString *aa = @"Hello world!";
    printf("Length of aa is: %i\n", [aa length]);
    return 0;
}

然后新建一个名叫GNUmakefile的文件,内容如下:
代码:
include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME=Test
Test_OBJC_FILES=code.m
include $(GNUSTEP_MAKEFILES)/tool.make

以上的TOOL_NAME=Test的"Test"要跟Test_OBJC_FILES中的"Test"一致,可以换成你喜欢的项目的名字。Test_OBJC_FILES=后面跟你的源代码文件的文件名。
执行以下命令:
代码:
sudo chmod a+x /usr/share/GNUstep/Makefiles/GNUstep.sh
. /usr/share/GNUstep/Makefiles/GNUstep.sh
make

然后从code.m生成的目标文件和可执行文件就放在当前目录下的obj目录下。下面运行一下试试看:
引用:
jie@jie-desktop:~/test$ ls
code.m GNUmakefile obj
jie@jie-desktop:~/test$ cd obj/
jie@jie-desktop:~/test/obj$ ls
code.d code.o Test
jie@jie-desktop:~/test/obj$ ./Test
Length of aa is: 12
jie@jie-desktop:~/test/obj$

运行结果显示了"Hello world!"这个字符串的长度为12,正确!那么我们的第一个Objective-c程序就在Linux下成功编译了!
分享到:
评论

相关推荐

    epson-rx8130ce芯片手册+linux下的驱动程序

    1. Copy the file rtc-rx8130.c into the directory ./linux-3.8.x/drivers/rtc. "linux-3.8.x" refers to the base of the linux kernel source tree. 2. Add the following lines into the drivers/rtc/Kconfig ...

    韦东山通用Makefile文件

    "obj-y += file.o" 表示把当前目录下的file.c编进程序里, "obj-y += subdir/" 表示要进入subdir这个子目录下去寻找文件来编进程序里,是哪些文件由subdir目录下的Makefile决定。 "EXTRA_CFLAGS", 它给当前目录...

    gc2145_tinav2.1验证完成20170523_1648.7z

    R:\wyb\gc2145_tinav2.1\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\gc2145.c R:\wyb\gc2145_tinav2.1\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\Makefile (可选操作,除了gc2145之外,...

    ARM9160*160液晶屏驱动

    1、 编译内核:将hgo.c复制到linux内核下drivers/char 目录,修改drvers/char/Makefile 在 obj-$(CONFIG_AT91_LED) += at91_led.o 一句之后,添加: obj-y += hgo.o 重新编译内核,驱动即可编译进内核。 2、建立...

    thl_r16_tinav2.0_hm1375验证通过_增加打印设备ID_20170824_1447.7z

    R:\wyb\thl_r16_tinav2.0_hm1375\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\hm1375.c 2、 R:\wyb\thl_r16_tinav2.0_hm1375\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\Makefile ...

    dosbox全套(包括dosbox、lib.exe、link.exe、masm.exe、debug.exe、obj2asm.exe).zip

    DOSBox 是一个 DOS 模拟程序,由于它采用的是 SDL 库,所以可以很方便的移植到其他的平台。目前,DOSBox 已经支持在 Windows、Linux、Mac OS X、BeOS、palmOS、...obj3asm.exe把目标obj文件转换为asm程序文件的C源程序

    linux驱动学习去开发入门

    Linux设备驱动程序学习(0)-Hello, world!模块 Linux设备驱动程序学习(0) -Hello, world!模块 一个学习Linux设备驱动程序都会碰到的第一个例程: #include &lt;linux/init.h&gt; #include &lt;linux/module.h&gt; ...

    r40_tinav2.1_最终验证通过_使用CB-S来验证OV5640有横条纹fpscamera+SPI2.0成功_20171114_1443没有外层目录.7z

    #obj-m += gc0328c.o #obj-m += gc2145.o #obj-m += gc0329.o #obj-m += gc0311.o #obj-m += hi253.o #obj-m += sp2518.o #obj-m += sp2519.o #obj-m += sp0718.o #obj-m += sp0838.o #obj-m += ov16825.o #obj-m +=...

    易语言程序免安装版下载

     支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。  使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib...

    hm1375_parrotv1.1验证通过_20170824_1528.7z

    注意: 每个key需要顶格写; ; key_value紧跟着key后面的等号后面, 位于同一行中; ; key_value限制大小为256字节以内; ; ;------------------------------------------------------------------------------- ;...

    Linux的makefile语法规则

    在此,我想多说关于程序编译的一些规范和方法,一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile...

    索智R16开发板点亮ov7725+ov2640+ov5640_20160721_1726.7z

    4、驱动程序:ov2640.c及其V4L2的适配层。 配置ov2640.c的编译选项,只需要修改device目录中的Makefile打开ov2640即可: R:\wyb\test_ov2640_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\ov2640.c R...

    新版Android开发教程.rar

    • Linux (tested on Linux Ubuntu Dapper Drake) Supported Supported Supported Supported Development Development Development Development Environments Environments Environments Environments Eclipse IDE o...

    gc2145_parrotv1.1_r16m_验证完成_20170523_1408没有外层目录.7z

    4、驱动程序:gc2145.c及其V4L2的适配层。 配置gc2145.c的编译选项,只需要修改device目录中的Makefile打开gc2145即可: R:\wyb\gc2145_parrotv1.1_r16m\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\gc...

    SCON工具源码

    其中 helloscons.c 是程序的源文件,SConstruct 是 scons 的配置文件,类似使用 make 工具时的 Makefile 文件,因此,为了编译你的项目,需要手工创建一个 SConstruct 文件(注意:文件名是大小写敏感的)。...

    TesselSphere:适用于 MS Windows 和 Linux 的球形细分实用程序-开源

    TesselSphere 是适用于 MS Windows 和 Linux 的 OpenGL 球面细分实用程序。 它目前使用粒子和测地线镶嵌器。 UI 使用 QHull 变形器,将 Delaunay 和 Voronoi 外壳分开以在晶格中创建新单元。 此外,变形器可以针对...

    细说cc 编译命令

    -c 编译产生对象文件(*.obj)而不链接成可执行文件,当编译几个独立的模块,而待以后由链接程序把它们链接在一起时,就可以使用这个选项,如: $cc -c hello.c ===&gt; hello.o $cc hello.o 2. -o 允许用户指定输出文件名,...

    matlab图像膨胀代码-Flash-Extended-Kalman-Filter-Project:Udacity自动驾驶汽车纳米学位-扩展卡

    matlab 图像膨胀代码闪电侠的结果 src文件夹中的代码更新; 输出数据保存在data文件夹中,并命名为obj_pose-laser-radar-ekf-output ; 模拟器中的输出图像也保存在data...注意完成项目需要编写的程序有src/FusionEKF.c

    wen_ov5640_r16设置为vga分辨率20160720_1003.7z

    4、驱动程序:ov2640.c及其V4L2的适配层。 配置ov2640.c的编译选项,只需要修改device目录中的Makefile打开ov5640(默认打开)即可: R:\wyb\wen_ov5640_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device...

    !!!!gc2135_parrotv1.1_r16m_验证完成VGA分辨率_20171010_1513没有外层目录.7z

    4、驱动程序:ov2640.c及其V4L2的适配层。 配置ov2640.c的编译选项,只需要修改device目录中的Makefile打开ov2640即可: R:\wyb\test_ov2640_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\ov2640.c R...

Global site tag (gtag.js) - Google Analytics