gcc属于GNU计划可以编译多种语言
编译器编译过程:预处理,编译,汇编,链接
1.预处理:
gcc -E文件名 预处理阶段暂停
头文件展开,#include<stdio.h>展开
宏替换#define
条件编译
2.编译
gcc -c 文件名
语法检查
词法分析
3.汇编
gcc -S 文件名
gcc 文件名1 -o 文件名2 改名字
库文件:可以使用文件里面的函数和变量,但是看不见变量和函数功能实现
静态库是在执行程序之前(编译)就已经加入到执行代码中,成为执行程序的一部分来执行,后缀名:.a 执行效率高,生成的可执行文件占用更多内存,更容易部署
gcc -c add.c 生成add.o
ar rcs 库名(libadd.a) add.o
cp libadd.a/lib
gcc main.c -ladd -L.
动态库是在执行程序启动时加载到执行代码中,后缀名:.so 更容易升级,占用内存小,不容易部署,执行效率低
创建: gcc -shared -fPIC -o 库名.so 源文件.c
使用:gcc 源文件.c./库名.so -o 可执行文件名