C语言编译基础知识

C 语言编译基础知识,C 语言从源码到可执行程序总共经历了预处理、汇编、编译、链接 4 个阶段。 编译过程 源代码->预处理->汇编->编译->链接->可执行程序 预编译 指令:gcc -E 产出:xxx.i(预编译文件) 工作:处理源代码中#开头的部分,将头文件拷贝至源码中,对#define宏定义进行文本替换,去掉注释 汇编 指令:gcc -S 产出:xxx.s(汇编源文件) 工作:将预编译文件翻译成汇编语言 编译 指令:gcc -c 产出:xxx.o(目标文件) 工作:将汇编代码翻译成机器语言(二进制) 链接 指令:gcc -o 产出:可执行文件(.out) 工作:将目标文件链接在一起合成可执行文件,如有多个源文件,需要指定链接文件 编译指令 编译环境:macOS 10.14.5 编译器:Apple LLVM version 10.0.1 (clang-1001.0.46.4), Target: x86_64-apple-darwin18.6.0 常用指令 gcc -I dirname:搜索dirname目录下的头文件,在预编译阶段使用 gcc -L dirname: 搜索dirname目录下的目标(库)文件,在链接阶段使用 源代码: // 头文件 ./lib/mymath.h #ifndef _MYMATH_H #define _MYMATH_H int sum(int a, int b); #endif // 实现文件 ./lib/mymath.c #include "mymath.h" int sum(int a, int b) { return a + b; } // main....

1 min · 123 words · Johnson