目标:在终端窗口打印Hello World。
1、编写代码
采用记事本或者XCode编辑代码,代码如下:
//包含文件
#include <stdio.h>
//程序入口(主函数)
int main()
{
printf("HelloWolrd!\n"); // 输出部分
return 0;
}
将此文件以.c格式进行存储。
2、编译和链接
什么是编译和链接呢,上面我们做成的文件是一个文本文档,电脑是不能直接运行的,电脑只能识别二机制码,我们需要用开发工具将这个文本转化成二机制码。需要用到终端进行操作。
打开终端,通过cd指令定位到程序所在目录(最初的操作都是从终端指令开始的,我们平时的鼠标等操作是系统屏蔽了这些基础细节),并通过ls指令查看当前目录下的所有文件:
$ cd /Users/labi3285/Desktop/Study
$ ls
HelloWord.c
接着上面的步骤,通过cc -c指令生成.o文件:
$ cc -c HelloWord.c
$ ls
HelloWord.c HelloWord.o
至此,我们的源文件已经转换为.o文件,该文件为二进制文件,但是该文件还不能被机器解读,因为该文件是独立的,系统并不知道里面调用的print方法以及其他的细节的作用(这些细节在别的文件里创建,这些细节由开发工具去做),为了生成完整的程序,我们就需要将该文件与其他资源进行整合,指令为cc:
$ cc HelloWord.o
$ ls
HelloWord.c HelloWord.o a.out
可以发现,最终生成a.out文件,该文件即为最终生成文件,是不是想赶紧试试呢?
执行该文件,直接./a.out即可:
$ ./a.out
HelloWolrd!
程序正确输出结果!
3、其他
a、编译链接两个操作可以一步完成(cc指令),对于较小的程序可以采用这种方式;
b、有多个文件时,链接要一起链接,各文件用空格隔开;
c、编译用到的工具为:Apple LLVM 5.1 ,该工具在xcode内部集成。