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下成功编译了!
分享到:
相关推荐
#### 一、理解Linux驱动程序 Linux驱动程序是操作系统与硬件设备之间的桥梁,负责管理硬件资源并提供相应的服务。它们通常被编写为内核模块,可以动态加载或卸载,以适应系统需求的变化。 #### 二、编译Linux驱动...
C语言程序结构 - **程序组成**: - C程序可以由**一个或多个**源文件组成。 - 每个源文件中可以包含**一个或多个**函数。 - **主函数**`main()`是程序的入口点,程序从这里开始执行。 - **模块化设计**: - *...
【基于Linux-2.6内核模块程序设计】 在Linux操作系统的发展历程中,Linux-2.6内核的发布标志着一个重要的里程碑。该内核引入了许多新的特性,提升了系统的稳定性和透明度,尤其是在内核模块子系统方面。本文将探讨...
字符驱动程序通常遵循Linux的通用驱动模型,包括初始化、打开、关闭、读、写等操作。在我们的场景中,驱动程序需要包含以下关键组件: 1. **模块初始化函数**:当驱动被加载时,这个函数会被调用,用于注册驱动到...
在Fedora这样的Linux发行版上,安装arm-linux-gcc是为了能够在x86或x86_64主机上构建适用于ARM设备的应用程序。 首先,你需要确保Fedora系统是最新的。打开终端并运行以下命令更新系统包: ```bash sudo dnf ...
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_linux_driver"表明这是一个针对OV5645传感器的Linux驱动程序。在Linux系统中,驱动程序是硬件和操作系统之间的桥梁,它负责初始化、配置硬件,并提供API供上层软件调用,以实现硬件功能。 OV5645 Linux驱动...
本篇文章将深入探讨如何在C语言程序中调用.obj文件中的函数,以及这一过程涉及的相关技术。 首先,我们需要理解.obj文件是什么。.obj文件是对象文件,它是源代码经过编译器处理后的结果,但还没有链接到最终的可...
在Linux系统中,驱动程序是操作系统与硬件设备之间的桥梁,它们负责向内核提供与特定硬件交互的接口。为了组织和构建复杂的驱动程序项目,通常会将代码分散到多个源文件中,这时就需要一个Makefile来管理编译过程。...
1. `Systems.c`:这是C语言的源代码文件,其中包含了实现系统测试功能的程序。学生可以通过阅读和分析这个文件来学习如何用C语言编写系统相关的程序。 2. `SYSTEMS.EXE`:这是编译后的可执行文件,是`Systems.c`经过...
在内网环境中,Linux系统上的开发工作经常需要安装和配置GCC和GCC-C++编译器,以便能够编译和构建C语言编写的程序,如Web服务器软件Nginx。GCC(GNU Compiler Collection)是一个开源的编译器套件,包括了C、C++、...
8. **平台独立性**:`json-c`设计为跨平台,可以在多种操作系统上编译和运行,包括Linux、Windows、Mac OS X等。 9. **示例代码**:`json-c`库提供了一系列示例代码,帮助开发者快速理解和使用其API。 在压缩包`...
### Linux单驱动程序动态编译环境配置 在Linux驱动开发过程中,往往需要对整个Linux内核进行重新编译。然而,对于只需要开发或测试单一驱动的情况,完全可以通过配置特定的环境来实现,而无需对整个内核进行编译。...
### C语言程序设计知识点解析 #### 一、填空题知识点解析 1. **Break语句**: - Break语句通常用于`switch`语句和循环语句中,如`for`、`while`等。 - 在`switch`语句中,`break`用来跳出当前`case`分支,防止...
- **C语言程序的开发流程**:编辑源代码、编译源文件、连接程序、执行程序。 - **算法的特点**:有穷性、确定性、有输入输出、有效性。 - **流程图示例**:绘制一个流程图来表示求解1×2×3×4×5的算法。 - **...
在Linux系统中,GCC(GNU Compiler Collection)是一个关键的开源编译器套件,用于将源代码编译成可执行程序。GCC支持多种编程语言,包括C、C++、Fortran、Objective-C等。在没有互联网连接的情况下,离线安装GCC...
### 手把手教你写Linux-I2C设备驱动 #### I2C驱动概述 I2C(Inter-Integrated Circuit)是一种广泛应用于嵌入式系统中的两线串行总线技术,常用于连接低速的微控制器与各种外围设备,如传感器、实时时钟(RTC)芯片...
在Linux系统中,驱动程序是操作系统与硬件设备之间的桥梁,它们负责向内核提供与特定硬件设备交互的接口。在嵌入式系统中,由于资源有限,驱动程序的编写和管理更为关键。本主题主要围绕如何在Linux下为嵌入式系统...