zoukankan      html  css  js  c++  java
  • 2019-2020-1 20199329 第二周测试(环境:ubuntu64位)

    2019-2020-1 20199329 第二周测试(环境:ubuntu64位)

    实验一

    0.每个.c一个文件,每个.h一个文件,文件名中最好有自己的学号

    1.用Vi输入图中代码,并用gcc编译通过

    2.在Vi中使用K查找printf的帮助文档

    3.提交vi编辑过程截图,要全屏,包含自己的学号信息

    解决方案

    1.创建6个空文件,将图片中每个函数分别写入一个空文件中,并修改文件名,除了头文件后缀名为.h以外,其他的文件后缀名都为.c。





    2.启动终端,输入gcc -c *.c,对文件夹中所有的.c文件进行编译,得到.o文件

    3.在文件夹中的终端输入vim main.c,再次敲击回车显示该函数的编辑界面。第二步将光标移动到语句printf上,然后输入大写K显示帮助文档


    实验二

    1.用gcc进行预处理,编译,汇编,链接vi输入的代码

    2.生成的可执行文件中要有自己的学号

    3.提交预处理,编译,汇编,链接,运行过程截图,要全屏,包含自己的学号信息

    解决方案

    1.在文件夹中打开终端,依次输入gcc -E main.c -o main.igcc -S main.i -o main.sgcc -c main.s -o main.o生成main.imain.smain.o加上原本的main.c一共四个文件,同时对add.csub.cmul.cdiv.c也进行操作。

    2.在终端中输入gcc -o 20199329 *.o生成以学号为名的可执行文件,并输入./20199329运行程序。


    实验三

    1.用gcc -g编译vi输入的代码

    2.在main函数中设置一个行断点

    3.在main函数增加一个空循环,循环次数为自己学号后4位,设置一个约为学号一半的条件断点

    3.提交调试过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    解决方案

    1.打开终端输入gcc -g *.c -o test生成一个可执行gdb文件test,.输入gdb test进入gdb调试模式,再输入l显示test文件内容,在test中写入一个for(i=0;i<5313;i++)的空循环用来检测断点。在gdb调试窗口输入b main在主函数第一行设置一个断点,然后再输入b 13 if i==2600即在第2600次循环处设置另一个断点。再输入info break显示断点信息,然后再输入r运行程序,遇到断点会显示断点内容,因为该循环设置为空,所以循环处断点没有内容显示。若再循环内设计一个计数器,循环内断点处会显示计数为2600。


    实验四

    1.除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?

    2.提交静态库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    解决方案

    1.首先输入ar -cr mymath.a add.o sub.o mul.o div.o 建立一个静态库并把add.osub.omul.odiv.o复制进这个静态库里,之后的操作与上一个实验相似,对循环进行断点调试。


    实验五

    1.除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?

    2.提交共享库生成和调用过程截图(一定包含条件断点的),要全屏,包含自己的学号信息

    解决方案

    1.在终端中输入gcc -shared -fpic -o mymath.so add.c sub.c mul.c div.c,建立一个有四个c文件的共享库。再输入gcc -o prog2 main.c ./mymath.so,生成一个可执行文件prog2。最后直接输入./prog2便可以运行该文件。


    实验六

    1.写出编译上面vi编辑代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.

    2.提交Make过程截图,要全屏,包含自己的学号信息

    解决方案

    1.首先 vim Makefile编写,然后在shell中输入make,运行生成的目标文件:


    思考题Myod

    1 复习c文件处理内容

    2 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能

    1. main与其他分开,制作静态库和动态库

    2. 编写Makefile

    5 提交测试代码和运行结果截图, 提交调试过程截图,要全屏,包含自己的学号信息

    6 在博客园发表一篇博客,重点写遇到的问题和解决过程

    解决方案

    1.代码实现:

    2.实现方法:ascii值输出是将%c输出转换为%d输出,十六进制输出是将%c输出转换为%x输出。

    3.静态库制作如下图:

    4.动态库制作如下图:

    5.makefile文件制作如下图:
    (1)首先,输入vim Makefile,编辑以下内容:

    (2)其次,输入以下命令执行文件:


    2019年9月25日

  • 相关阅读:
    SQL 取日期
    myeclipse 8.5 安装jbpm3.2开发插件
    持续感悟
    程序员应该读的书与经常上的网站
    java连接ms sql server各类问题解析
    怎么实现Redis的高可用?(主从、哨兵、集群)
    Web系统突然爆”Asp.net ajax客户端框架未能加载“的一种可能原因(误改服务器系统时间)
    【转】Skyline软件介绍
    ArcSDE启动遇到ORA12560: TNS: 协议适配器错误解决办法
    开放源代码GIS资源集锦
  • 原文地址:https://www.cnblogs.com/Zxf313806994/p/11594977.html
Copyright © 2011-2022 走看看