一、GCC编译过程及一些参数
gcc编译的四个阶段
- 预处理器:cpp 头文件展开、宏替换、去掉注释 gcc -E hello.c -o hello.i
- 编译器:gcc C文件编程汇编文件 gcc -S hello.i -o hello.s
- 汇编器:汇编文件变成二进制文件 gcc -c hello.s -o hello.o
- 链接器: 将函数库中相应的代码组合到目标文件中 gcc hello.o -o hello
参数:
-I- 如果 test.c 在 /home/mp5530/code 目录; test.h在 /home/mp5530目录,则编译的使用:
gcc test.c -I /home/mp5530 -o mytest
- 如果 test.c 在 /home/mp5530/code 目录; test.h在 /home/mp5530目录,则编译的使用:
-D- 在编译的时候指定宏
gcc test.c -I /home/mp5530 -o mytest -D DEBUG
- 在编译的时候指定宏
-O- 是否需要优化程序
-O0(没有优化) -01(缺省值) -03(优化级别最高), 等级最高为3, 去除冗余代码
- 是否需要优化程序
-Wall- 在程序编译的时候输出警告信息
-g- 在程序编译时加入调试信息(gdb调试的时候必须加此参数)
-L- 静态库所在的目录
-l命名规则
- lib +库的名字+ .a2). libmytest.a
- 制作步骤
- 生成对应的.o文件— .c —> .o-c
- 将生成的.o文件打包ar rcs +静态库的名字(libMytest.a)+生成的所有的.o3>。
- 发布和使用静态库
- 发布静态库
- 头文件
三、共享库的制作、使用

四、GDB调试

