20155317 2016-2017-2 蓝墨云班课考题第2周
三:
1.用gcc -g编译vi输入的代码
2.在main函数中设置一个行断点
3.在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点
4.提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
第一步:输入 gcc -g *.c -o mian
第二步:首先在mian中写入一个空循环,以学号为最终的结束点
第三步:再输入gdb main 进入调试阶段;在调试阶段里,首先输入start 表示开始调试,再输入
课上遇到的问题:在课上做这道题目的时候,遇到输入生产main文件的指令,并没有生成main文件,原因是main文件里面没有add这些文件,所以并不能够成功编译成功,当时没有注意到没有可执行文件的生成,所以在盲目使用gdb,在课后,我重新编写了一个不带有add等函数的main文件,所以理所当然的生成了main文件,后面的步骤也就成顺利进行了
四:
1. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a? 2. 提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
五:
.除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so? 2. 提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息
这三条指令的目的就是制作一个共享库
六。makefile
1 写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以. 2 提交Make过程截图,要全屏,包含自己的学号信息
其实makefile比较简单,通俗一点来讲,它就是采用了编程代替人工的思想,在假设文件特别多的情况下,我们可以写一个程序,然后让机器去做
makefile的步骤:
1.准备好要进行makefile的文件
2.makefile里的文件gcc一定要用tab键填入
3.在makefile文件里,头文件名一定要变色才可成功
4.运行makeffile 的命令:输入make就可以
七 myod
1 复习c文件处理内容 2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 3. main与其他分开,制作静态库和动态库 4. 编写Makefile 5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息 6 在博客园发表一篇博客,重点写遇到的问题和解决过程
遇到的困难:1.在编写这个库的时候,需要两次用到makefile,同时制作了两个makefile文件,但是会出现找不到文件的问题
解决的办法:经过一系列的学习发现,make命令只对文件名为makefile的文件起作用,如果换了名字,就算内容没有更改,那也无济于事。