# 2018-2019-1 20165206 《信息安全系统设计基础》第1周学习总结
Posted brs666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了# 2018-2019-1 20165206 《信息安全系统设计基础》第1周学习总结相关的知识,希望对你有一定的参考价值。
2018-2019-1 20165206 《信息安全系统设计基础》第1周学习总结
教材学习内容总结
- gcc编译:
预处理: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调试:
编译生成可执行文件:gcc -g hello.c -o hello
进入gdb调试界面:gdb test
部分常用指令:
查看代码(默认10行):list
设置行断点:break 5
(停在第5行)
设置条件断点:break 5 if n=6
(如果n的值为6,则程序运行到第5行停止)
执行下一行:next
继续运行:continue
帮助信息:help
开始运行程序:run
清除断点:clear
退出:quit
- 静态库
生成.o文件:gcc -c -I/头文件所在路径 add.c sub.c mul.c div.c
生成静态库:ar rcvs libmath.a add.o sub.o mul.o div.o
生成可执行文件main:gcc main.c -o main -I/头文件所在路径 -L. -lmath
- 动态库
生成.o文件:gcc -fPIC -c -I/头文件所在路径 add.c sub.c mul.c div.c
生成动态库:gcc -shared -o mymath.so add.o sub.o mul.o div.o
将文件libmath.so复制到目录/lib中
生成可执行文件main:gcc main.c -o main -I/头文件所在路径 -L.lmath
- Makefile
创建:vim Makefile
- 教材学习中的问题和解决过程
问题1:a.out是什么?有什么含义嘛?
问题1解决方案:a.out 是linux/unix环境下gcc编译源代码(c/c++)并连接产生的默认执行文件名。a.out是由OMAGIC, NMAGIC, QMAGIC, 或者 ZMAGIC发展过来的一种可执行文件格式。一个典型的a.out文件由一下7部分组成:exec header:文件头、text segment:代码段、data segment:数据段、text relocations:代码重定向
、data relocations:数据重定向、symbol table:符号表、string table:字符串表。
- 代码调试中的问题和解决过程
- 问题1:编译main.c时报错
- 问题1解决方案:要编译包括各个函数在内的所有.c文件,*.c
问题2:链接时不成功,报错。
问题2解决方案:要将包括4个函数在内的所有.o文件都放到bin文件夹中才可以。
问题3:运行Makefile时报错。
问题3解决方案:书写Makefile时要用Tab空行后再书写命令。
感悟
这周的学习困难不少,收获也是挺大的。知道了一些在Linux下c语言文件处理的操作,以及一些相关知识。新的学期新的挑战,继续加油,努力学习。
以上是关于# 2018-2019-1 20165206 《信息安全系统设计基础》第1周学习总结的主要内容,如果未能解决你的问题,请参考以下文章
2018-2019-1 20165201 20165203 20165206 实验二 固件程序设计
# 2018-2019-1 20165206 《信息安全系统设计基础》第1周学习总结
2018-2019-1 20165206 《信息安全系统设计基础》第2周学习总结
2018-2019-1 20165206 《信息安全系统设计基础》第4周学习总结