一、概念
Xcode4之前,Xcode是用GCC编译器来翻译代码
GCC编译器 : 开源免费的编译器
C/OC/C++/JAVA…
Xcode4之后,LLVM(虚拟机 Clang前端就是用来编译代码(翻译代码))
编译
cc -c 文件名 翻译我们自己的代码
链接
cc 文件名 将我们自己的代码和系统的以及其他依赖文件的代码组合在一起
cc -c main.c (将我们自己的代码翻译成0和1)
—> main.i // 替换文件中所有的预处理指令
—> mean.s //汇编
—> main.o // 二进制 001001
cc main.0
—> 将我们自己的二进制和依赖的文件的二进制组合在一起,生成一个可执行文件
注意: 如果只有警告没有错误,那么clang会帮我们翻译代码
如果有错误,那么clang就不会给我们翻译代码
clang编译器会帮我们检查警告和错误
注意: clang编译器在编译的时候只会检查语法错误
clang编译只会在链接的时候检查函数 有没有真正的实现
如果在终端里面输入 cc
出现clang: error: no input files 说明已经按照了虚拟机
出现-bash: dasda: command not found
cc - c main.c 出现警告
main.c:5:5: warning: implicit declaration of function 'sum' is invalid in C99
[-Wimplicit-function-declaration]
sum(10,20);
^
1 warning generated.
cc -c main.c 出现错误
main.c:6:9: error: redefinition of 'a'
int a = 10;
^
main.c:5:9: note: previous definition is here
int a = 10;
^
1 error generated