`
loovle
  • 浏览: 145520 次
  • 性别: 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下成功编译了!
分享到:
评论

相关推荐

    windows 下搭建 Objective-C 开发环境

    尽管Objective-C主要与Apple的平台(如iOS和macOS)相关联,但有时候,出于某些原因(比如团队协作或个人偏好),开发者可能需要在非Apple的操作系统(如Windows)上构建Objective-C应用程序。本文将详细介绍如何在...

    linux驱动编译与运行-驱动程序

    #### 一、理解Linux驱动程序 Linux驱动程序是操作系统与硬件设备之间的桥梁,负责管理硬件资源并提供相应的服务。它们通常被编写为内核模块,可以动态加载或卸载,以适应系统需求的变化。 #### 二、编译Linux驱动...

    .archivetemp第1-2章 程序设计&C语言&算法.pdf

    C语言程序结构 - **程序组成**: - C程序可以由**一个或多个**源文件组成。 - 每个源文件中可以包含**一个或多个**函数。 - **主函数**`main()`是程序的入口点,程序从这里开始执行。 - **模块化设计**: - *...

    基于Linux-2.6内核模块程序设计.pdf

    【基于Linux-2.6内核模块程序设计】 在Linux操作系统的发展历程中,Linux-2.6内核的发布标志着一个重要的里程碑。该内核引入了许多新的特性,提升了系统的稳定性和透明度,尤其是在内核模块子系统方面。本文将探讨...

    linux字符驱动程序读写IO端口含makefile和测试程序

    字符驱动程序通常遵循Linux的通用驱动模型,包括初始化、打开、关闭、读、写等操作。在我们的场景中,驱动程序需要包含以下关键组件: 1. **模块初始化函数**:当驱动被加载时,这个函数会被调用,用于注册驱动到...

    fedora下安装arm-linux-gcc

    在Fedora这样的Linux发行版上,安装arm-linux-gcc是为了能够在x86或x86_64主机上构建适用于ARM设备的应用程序。 首先,你需要确保Fedora系统是最新的。打开终端并运行以下命令更新系统包: ```bash sudo dnf ...

    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 ...

    ov5645_ov5645linux_

    "ov5645_linux_driver"表明这是一个针对OV5645传感器的Linux驱动程序。在Linux系统中,驱动程序是硬件和操作系统之间的桥梁,它负责初始化、配置硬件,并提供API供上层软件调用,以实现硬件功能。 OV5645 Linux驱动...

    C语言调用obj文件中的函数源代码

    本篇文章将深入探讨如何在C语言程序中调用.obj文件中的函数,以及这一过程涉及的相关技术。 首先,我们需要理解.obj文件是什么。.obj文件是对象文件,它是源代码经过编译器处理后的结果,但还没有链接到最终的可...

    linux下驱动程序模块编程多文件makefile编写示例

    在Linux系统中,驱动程序是操作系统与硬件设备之间的桥梁,它们负责向内核提供与特定硬件交互的接口。为了组织和构建复杂的驱动程序项目,通常会将代码分散到多个源文件中,这时就需要一个Makefile来管理编译过程。...

    C语言项目实战-课程设计-毕业设计-c语言对自己电脑系统测试

    1. `Systems.c`:这是C语言的源代码文件,其中包含了实现系统测试功能的程序。学生可以通过阅读和分析这个文件来学习如何用C语言编写系统相关的程序。 2. `SYSTEMS.EXE`:这是编译后的可执行文件,是`Systems.c`经过...

    内网环境下Linux环境gcc gcc-c++编译器安装所需依赖

    在内网环境中,Linux系统上的开发工作经常需要安装和配置GCC和GCC-C++编译器,以便能够编译和构建C语言编写的程序,如Web服务器软件Nginx。GCC(GNU Compiler Collection)是一个开源的编译器套件,包括了C、C++、...

    json-c 一个用于c语言的json解析库,很强大

    8. **平台独立性**:`json-c`设计为跨平台,可以在多种操作系统上编译和运行,包括Linux、Windows、Mac OS X等。 9. **示例代码**:`json-c`库提供了一系列示例代码,帮助开发者快速理解和使用其API。 在压缩包`...

    linux 单驱动程序动态编译环境配置

    ### Linux单驱动程序动态编译环境配置 在Linux驱动开发过程中,往往需要对整个Linux内核进行重新编译。然而,对于只需要开发或测试单一驱动的情况,完全可以通过配置特定的环境来实现,而无需对整个内核进行编译。...

    C语言程序的设计复习试题库完整.docx

    ### C语言程序设计知识点解析 #### 一、填空题知识点解析 1. **Break语句**: - Break语句通常用于`switch`语句和循环语句中,如`for`、`while`等。 - 在`switch`语句中,`break`用来跳出当前`case`分支,防止...

    C语言CCAT复习资料

    - **C语言程序的开发流程**:编辑源代码、编译源文件、连接程序、执行程序。 - **算法的特点**:有穷性、确定性、有输入输出、有效性。 - **流程图示例**:绘制一个流程图来表示求解1×2×3×4×5的算法。 - **...

    linux离线安装gcc教程

    在Linux系统中,GCC(GNU Compiler Collection)是一个关键的开源编译器套件,用于将源代码编译成可执行程序。GCC支持多种编程语言,包括C、C++、Fortran、Objective-C等。在没有互联网连接的情况下,离线安装GCC...

    手把手教你写Linux-I2C设备驱动.doc

    ### 手把手教你写Linux-I2C设备驱动 #### I2C驱动概述 I2C(Inter-Integrated Circuit)是一种广泛应用于嵌入式系统中的两线串行总线技术,常用于连接低速的微控制器与各种外围设备,如传感器、实时时钟(RTC)芯片...

Global site tag (gtag.js) - Google Analytics