linux apple开发环境,Objective-C开发环境设置

如果要安装自己的Objective-C编程语言编程环境,则需要在计算机上安装文本编辑器和GCC编译器。

1. 文本编辑器

文本编辑器用于编写程序代码。一些常见的编辑器如:Windows Notepad,OS Edit命令,Brief,Epsilon,EMACS和vim/vi等。

文本编辑器的名称和版本可能因不同的操作系统而异。 例如,Notepad将在Windows上使用,vim/vi可以在Windows以及Linux或UNIX上使用。

使用编辑器创建用于存储代码的文件称为源文件,它包含程序源代码。 Objective-C程序的源文件通常以.m作为扩展名。

在开始编程之前,请确保有一个文本编辑器,并且有足够的经验来编写计算机程序,将其保存在文件中,编译并最终执行。

2. GCC编译器

源文件中编写的源代码是程序的可读源代码。它需要被“编译”成机器语言,这样CPU才能按照给出的指令执行实际的程序。

GCC编译器将用于将源代码编译为最终的可执行程序。 这里假设读者具有编程语言编译器的基本知识。

GCC编译器可在各种平台上免费使用,下面介绍在各种平台上设置的过程。

3. 在UNIX/Linux上安装

首先是安装gcc以及gcc Objective-C包。这里以Centos/Redhat为例,它通过以下命令 -

$ su -

$ yum install gcc

$ yum install gcc-objc

进一步是使用以下命令设置包依赖项 -

$ yum install make libpng libpng-devel libtiff libtiff-devel libobjc

libxml2 libxml2-devel libX11-devel libXt-devel libjpeg libjpeg-devel

要获得Objective-C的全部功能,请下载并安装GNUStep。 这可以通过从 http://main.gnustep.org/resources/downloads.php 下载软件包来完成。

现在,需要切换到下载的文件夹并通过以下方式解压缩文件 -

$ tar xvfz gnustep-startup-.tar.gz

现在,需要切换进入到创建的文件夹gnustep-startup -

$ cd gnustep-startup-

接下来,需要配置构建过程 -

$ ./configure

然后,开始构建 -

$ make

最后,需要最终建立环境 -

$ ./usr/GNUstep/System/Library/Makefiles/GNUstep.sh

接下来,编写一个简单的Objective-C程序 - helloWorld.m,完整代码如下 -

#import

int main (int argc, const char * argv[]) {

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

NSLog (@"hello world");

[pool drain];

return 0;

}

现在,通过使用cd 切换到包含该文件的文件夹,使用以下步骤编译并运行一个Objective-C文件 - helloWorld.m -

$ gcc `gnustep-config --objc-flags` -L/usr/GNUstep/Local/Library/Libraries -lgnustep-base helloWorld.m -o helloWorld

$ ./helloWorld

现在就应该可以看到以下输出了,如下所示:

2018-11-07 11:48:39.412 yiibai[11096] hello world

4. 在Mac OS上安装

如果使用的是Mac OS X,获取GCC的最简单方法是从Apple的网站下载Xcode开发环境,并按照简单的安装说明进行操作。当设置了Xcode,就可以将GNU编译器用于编译C/C++程序了。

Xcode目前可在 https://developer.apple.com/technologies/tools/ 上找到并下载。

注:在Mac OS上编写Objective-C就很简单了,只需要打开 Xcode 就可以编写、编译和运行程序了。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531629.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

codeforces C. Design Tutorial: Make It Nondeterministic

题意:每一个人 都有frist name 和 last name! 从每一个人的名字中任意选择 first name 或者 last name 作为这个人的编号!通过对编号的排序,得到每一个人 最终顺序!比较中的序列能否得到给定输出的序列一致&#xff01…

Linux系统扩硬盘,Linux系统硬盘扩容

1、查看硬盘已经用了99%$ df -h #查看硬盘已经使用了99%文件系统 容量 已用 可用 已用% 挂载点devtmpfs 2.0G 0 2.0G 0% /devtmpfs 2.0G 12K 2.0G 1% /dev/shmtmpfs 2.0G 11M 2.0G 1% /runtmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup/dev/mapper/centos-root 47G 47G 687M 99% / ####…

codeforce A. Design Tutorial: Learn from Math

题意:将一个数拆成两个合数的和, 输出这两个数!(这道题做的真是TMD水啊)开始的时候不知道composite numbers是啥意思,看了3遍才看懂.... 看懂之后又想用素数筛选法来做,后来决定单个判断一个数是…

设置密码命名是什么linux,orapwd 工具建立密码文件遵守的命名方法

orapwd 工具建立建立的密码文件 一定要orapw实例名吗我在11g和10g 测试是必须要 orapw实例名 才能登录成功以下是验证过程[oracleasm dbs]$ rm orapwasm[oracleasm dbs]$ orapwd fileorapwdasm passwordabcdefg entries10[oracleasm dbs]$ sqlplus /nologSQL*Plus: Release 10.…

codeforces B. Design Tutorial: Learn from Life

题意:有一个电梯,每一个人都想乘电梯到达自己想要到达的楼层!从a层到b层的时间是|a-b|, 乘客上下电梯的时间忽略不计!问最少需要多少的时间.... 这是一道神题啊,自己的思路不知不觉的就按照注解的思路走…

arm linux 中断优先级,ARM中断处理过程

以s3c2440 ARM9核为例:一:s3c2440 ARM处理器特性:1、S3C2440支持60个中断源,含子中断源;2、ARM9采用五级流水线方式;3、支持外部中断和内部中断;二、s3c2440 支持的寄存器:2.1 外部中断寄存器24…

codeforces D. Design Tutorial: Inverse the Problem

题意:给定一个矩阵,表示每两个节点之间的权值距离,问是否可以对应生成一棵树, 使得这棵树中的任意两点之间的距离和矩阵中的对应两点的距离相等! 思路:我们将给定的矩阵看成是一个图,a 到 b会有…

linux ssh 远程会话保存,远程SSH会话和流程在断开后运行的5种方法

SSH或安全Shell简单来说就是一个人可以远程访问其他用户的其他系统,但仅在命令行即非GUI模式的方法。 在更多的技术术语中,当我们ssh到其他用户在某些其他系统上并在该机器上运行命令时,它实际上创建一个伪终端并将其附加到登录用户的登录she…

java模拟一个简单的QQ

v 项目源码https://github.com/hjzgg/java_QQ v 标题效果package testFour;import java.awt.Color; import java.awt.Dimension; import java.awt.FontMetrics; import java.awt.Graphics; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.I…

修改Linux启动后的默认颜色,更改linux目录的默认颜色(我选择了Yellow)

在控制台下,用ls,就会发现,shell将不同类型的文件项目显示为不同的颜色。者可以提高效率,不用ls -l便能大概的把各个文件的类型情况了解一下。你有没有想过更改这个着色配置呢?其 实,在/etc下有一个DIR_COL…

AC_Dream 1216 G - Beautiful People

题意&#xff1a;有n个人每人有一个力气值Si,美丽值Bi&#xff0c;满足Bi>Bj&&Si>Sj 或者 Bi<Bj&&Si<Sj 的人可以一起参见晚会&#xff0c;问最多有多少人可以一起参见晚会。思路&#xff1a; 我们根据S从小到大将所有人排序&#xff0c;然后看B最…

云主机用linux还是winows,云服务器一般使用什么系统?Linux还是Windows?

云服务器一般使用什么系统?最常用的就是Linux以及Windows系统&#xff0c;两大系统各有不同优势&#xff0c;大家选择上也是存在差异的&#xff0c;接下来跟着小编来了解一下吧。Windows系统&#xff1a;一般情况来说&#xff0c;Windows系统常用的是Server 2003和Server 2008…

c语言程序中return的作用,单片机C语言程序中return dat 什么意思

/* 打开 ISP,IAP 功能 */void ISP_IAP_enable(void){EA 0; /* 关中断 */ISP_CONTR ISP_CONTR & 0x18; /* 0001,1000 */ISP_CONTR ISP_CONTR | WaitTime; /* 写入硬件延时 */ISP_CONTR ISP_CONTR | 0x80; /* ISPEN1 */}/* 关闭 ISP,IAP 功能 *…

java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案

1 try {2 //向指定的ip和端口发送数据~&#xff01;3 //先说明一下数据是谁发送过来的&#xff01;4 byte[] ip InetAddress.getLocalHost().getHostAddress().getBytes();5 …

二级c语言程序设计bug,《C语言及程序设计》实践项目——发现Bug

返回&#xff1a;贺老师课程教学链接【项目1-sin泰勒展式中的错误】下面是sin函数的泰勒展式&#xff1a;(注&#xff1a;x取弧度值&#xff0c;而非角度值)编写了double mysin(double x)用于求sin值&#xff0c;却“死”在了123上。剧透一下&#xff0c;循环没有问题(当然问题…

AC_Dream 1224 Robbers(贪心)

题意&#xff1a;n个抢劫犯分别抢到的金钱是k1, k2, k3,...&#xff0c;一共得到的金钱是m&#xff0c; 但是在分钱的时候是按照x1/y, x2/y, x3/y,....的比例进行分配的&#xff01;这样的话 一些抢劫犯就会觉得不公平&#xff0c;不公平度为|xi/y - ki/m|(浮点运算)&#xff0…

C语言编程出图形,C语言画出各种图形

矩形&#xff1a;(里面是空的)******** ** ** ********Program ended with exit code: 0for (int i 0; i < 5; i ) {for (int j 0; j < 7; j ) {//用条件判断打出*号if (i 0 || i 4 || j 0 || j 6 ) {printf("*");}else{printf(" "…

AC_Dream 1211 Reactor Cooling

1 /*2 题意&#xff1a;无源无汇&#xff0c;并且每条边的容量有上下界限的网络流问题&#xff01;既然无源无汇&#xff0c;那么素有的节点都应该满足“入流出流”&#xff01;3 输出每一条边的流量&#xff0c;使得满足上面的条件。&#xff08;如果u->v有流…

c语言中const对于define优点,为什么大多数C开发人员使用define而不是const?

这有一个非常可靠的原因&#xff1a;C中的const并不意味着一些常量。 这只是意味着一个variables是只读的。在编译器需要一个常量的地方(例如非VLA数组的数组大小)&#xff0c;使用constvariables(如fieldWidth是不可能的。他们不一样const只是一个限定符&#xff0c;它表示一个…

c语言程序设计期末试卷A,《C语言程序设计》期末试卷(A)..doc

《C语言程序设计》期末试卷(A).2011-12-1学期《C语言程序设计》期末试卷(A)班级____________姓名____________学号________________大题号一二三四总分得 分判卷 /核分人“一、选择题”使用答题卡选择。“二、看程序写运行结果”答题处&#xff1a;题号答 案二、1二、2二、3“三…