2018-2019-1 20165331 《信息安全系统设计基础》第一周学习总结
gcc编译器
常用参数:
-I:在此参数后添加自定义头文件的路径
-E:表示对.c文件预处理,输出.i文件
-S:表示对.i文件进行编译,输出.s文件
-c:表示对.s文件进行汇编,输出.o文件
-o:指定生成的输出文件
-l:指定程序要链接的库
-L:指定库文件所在目录
操作格式:
gcc -E hello.c -o hello.i
gcc -S hello.i -o hello.s
gcc -c hello.s -o hello.o
gcc hello.o -o hello
使用通配符进行多模块编译
gdb的使用
首先在编译时加入-g参数以进行调试
gdb:打开gdb
file ...:在gdb中打开某文件
l&list:每10行列出程序
b n:在第n行添加断点
b n if ...:在第n行添加一个条件为...的条件断点
r:运行程序
next:运行下一步
clear:清除断点
quit:退出gdb
库的生成与使用
静态库
生成:ar rcvs mymath.a *.o
调用:gcc main.c -o main -L. -lmath
共享库
生成:gcc -shared -fpic -o mymath.so *.c
调用:gcc -o link main.c ./mymath.so
Makefile
基本格式:
target 目标文件名 : 生成目标文件所需文件
make执行的命令
...
...
需要注意的是在vi中,第二行开始的各项命令都需要使用Tab键空出首位。
执行过程:
vi makefile
make
./...