gcc工作流程
- 预处理 gcc -E 生成.i文件,宏、头文件、注释等
- 编译 gcc -S 生成.s文件,检查语法规范
- 汇编 gcc -c 生成.o文件,汇编指令翻译成机器指令
- 链接,数据段合并,地址回填
指令
- -o:指定生成的文件名字
- -D:编译的时候定义宏
- -I:指定头文件的路径
- -g:gdb调试的时候需要添加该参数
- -O:编译优化,3个等级(1-3)
- -wall:编译期间输出警告信息
静态库
-
命名规则,libMyName.a
-
制作步骤:
-
生成.o
gcc -c *.c -
打包所有.o文件
ar rcs 静态库的名字 *.o
-
-
使用:main.c -L -l
gcc main.c (库) -LlibPath -llibname -o app -Iinclude
制作动态库
-
动态库后缀:.so – libmyname.so
-
制作步骤
-
生成与位置无关的代码
gcc -fPIC -c *.c -Iinclude -
将.o打包生成.so文件
gcc -shared -o libmytest.so
-
-
使用main.c lib include
gcc main.c -Llib -lmytest -Iinclude -o app