Xcode编译原理

2019-12-07  本文已影响0人  silasjs

Xcode编译原理

1.xcode 编译的过程

源文件.c --> 编译 --> 目标文件.o --> 链接 --> 可执行文件.out

xcode 编译过程:

  1. 首先是把程序员写的代码编译成二进制。
  2. 然后再根据源文件中导入的系统库头文件去链接,也就是把自己写的代码和系统库中的代码合并在一个二进制文件中。
  3. 生成可执行文件。

2.clang 指令编译步骤

xcode4 之前是使用 GCC 编译器来翻译代码的。GCC 编译器是开源免费的,可以编译 C/OC/C++/JAVA...
xcode4 之后使用苹果自己的 LLVM(clang 前端)。

  1. 打开终端

  2. cd到源文件所在的位置

  3. 编写源文件

    1. touch main.c(创建源文件)
    2. open main.c(打开文件)
    3. 编写代码:
    #include <stdio.h>
    
    int main() {
        printf("hello, silas \n");
        return 0;
    }
    
  4. 编译命令:cc -c main.c(我们自己的代码翻译成0和1)

    1. 先生成main.i(替换文件中所有的预处理指令)
    2. 再生成main.s(汇编)
    3. 最后生成一个main.o文件(二进制)
  5. 链接命令:cc main.o (将我们自己的代码和系统的以及其他依赖文件的代码组合在一起,生成可执行文件)

  6. 执行文件:./a.out(相当于运行程序)

注意:
如果只有⚠️,没有❌,那么clang会帮我们翻译代码。
如果有❌,那么clang就不会给我们翻译代码。
clang编译器在编译的时候只会检查语法错误。
clang编译器只会在链接的时候检查函数有没有真正的实现。
clang指令只能编译C/C++/OC的代码,不能编译swift代码。

上一篇 下一篇

猜你喜欢

热点阅读