C程序编译
一、C程序编译生命周期
二、GCC 常见命令
用例: gcc [options] file...
选项:
-save-temps 不要删除中间文件。
-E 仅预处理; 不要编译、汇编或链接。
-S 仅编译; 不要组装或链接。
-c 编译和汇编,但不链接。
-o <file> 指定输出文件名
-std=<version> 指定编译版本,例:c99 c11
-Wall 参数用于显示所有的警告信息
-g debug模式
GCC 默认编译过程:
三、常用命令
3.1 单文件
$ gcc hello.c -o hello
3.2 多文件
$ gcc *.c *.h -o ${name}
3.3 多目录多文件
$ gcc ${abs_files} -o ${name}
3.4 静态链接库
1.创建
$ gcc -c ${*.c} -o ${*.o}
$ ar rcs ${libname.o} ${*.o}
2.查看
// 查看文件
ar t ${lib_name}
// 查看函数原型
nm ${lib_name}
3.使用
写出相应的函数原型直接调用。
4.编译
编译时指定静态库名称与静态库路径
-I 头文件目录
-L lib目录
-l lib名称
$ gcc main.c -I ./include -L ./lib -l ${lib_name}
3.5 动态链接库
- 创建
$ gcc -shared -fPIC -o ${libname}.so #{files}
- 使用
// 需指定lib目录,通常将静态库放到:/lib
$ gcc main.c -L/lib -l${libname} -I include