Xcode编译原理
1.xcode 编译的过程
源文件.c --> 编译 --> 目标文件.o --> 链接 --> 可执行文件.out
xcode 编译过程:
- 首先是把程序员写的代码编译成二进制。
- 然后再根据源文件中导入的系统库头文件去链接,也就是把自己写的代码和系统库中的代码合并在一个二进制文件中。
- 生成可执行文件。
2.clang 指令编译步骤
xcode4 之前是使用 GCC 编译器来翻译代码的。GCC 编译器是开源免费的,可以编译 C/OC/C++/JAVA...
xcode4 之后使用苹果自己的 LLVM(clang 前端)。
打开终端
cd
到源文件所在的位置-
编写源文件
-
touch main.c
(创建源文件) -
open main.c
(打开文件) - 编写代码:
#include <stdio.h> int main() { printf("hello, silas \n"); return 0; }
-
-
编译命令:
cc -c main.c
(我们自己的代码翻译成0和1)- 先生成
main.i
(替换文件中所有的预处理指令) - 再生成
main.s
(汇编) - 最后生成一个
main.o
文件(二进制)
- 先生成
链接命令:
cc main.o
(将我们自己的代码和系统的以及其他依赖文件的代码组合在一起,生成可执行文件)执行文件:
./a.out
(相当于运行程序)
注意:
如果只有⚠️,没有❌,那么clang
会帮我们翻译代码。
如果有❌,那么clang
就不会给我们翻译代码。
clang
编译器在编译的时候只会检查语法错误。
clang
编译器只会在链接的时候检查函数有没有真正的实现。
clang
指令只能编译C/C++/OC
的代码,不能编译swift
代码。