gcc
- 通过gcc控制编译过程
- 让gcc在编译的任何阶段结束
- 编译器输出信息、生成的二进制文件 、不同数量和种类的调试代码、代码优化功能
- gcc提供了30多条警告信息和3个警告级别,使用它们有助于增强程序的稳定性和可移植性
- gcc还对标准的C和C++语言进行了大量的扩展
gcc hello.c -o hello
- gcc来编译源程序
- -o 选项
使用gcc编译程序,的四个过程
- 预处理(pre-processing)
- 编译(compiling)
- 汇编(assembling)
- 链接(linking)
静态链接库
main.c
#include <stdio.h>
extern void print_hello();
int main(void)
{
print_hello();
}
Print_hello.c
#include <stdio.h>
void print_hello()
{
printf("hello\n");
}
静态库介绍
- 静态库是obj文件的合集
- 目标文件.o 通常只解析了文件内部的变量和函数,对于引用的函数和变量没有解析
- 将编写好的目标文件引用进来去解析引用的函数和变量
- 通常引用的目标是库
- 静态库以
.a
为后缀。名字格式一般是libxxxx.a
由ar程序生成
创建静态库
- 生成目标文件 gcc -c file.c
- 目标文件进行归档 ar -rcs 库文件obj_1 obj_2(将一个obj文件加入到已经存在静态库)
gcc -c print_hello.c
#生成 print_hello.o文件
ar -rcs libhello.a print_hello.o
# 生成libhello.a(静态库)