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

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

课下把代码推送到代码托管平台**

答案:

1.在命令行输入gcc -shared -fpic -o libv20155233.so 20155233sub.c 20155233add.c 20155233mul.c 20155233div.c

2.输入gcc -o libv20155233 20155233main.c ./libv20155233.so

3.完成后就可以运行./libv20155233

4.具体尝试如下图:

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

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

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

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

课下把代码推送到代码托管平台**

答案:

1.首先,输入gcc 20155233main.c 20155233add.c 20155233sub.c 20155233div.c 20155233mul.c -g -o text

2.其次,输入cgdb text进入调试界面

3.调试程序如下:

第二周测试6-Makefile

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

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

课下把Makefile推送到代码托管平台**

答案:

  • 1.命令行输入 vim Makefile,编辑以下内容(注意Tab的使用):
  • 2.保存退出后命令行输入make,之后输入./testmymath运行,如下图:

1 复习c文件处理内容

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

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

4. 编写Makefile

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

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

答案:

  • 1.代码实现:
#include<stdio.h>
void main(){ char filename[50];
printf("please input file's name;\n");
scanf("%s",filename);
ascii(filename);
change(filename); }
void ascii(char *filename)
{FILE *fp;
char ch;
fp=fopen(filename,"r");
ch=fgetc(fp);
printf("ascii码输出为:\n");
while(ch!=EOF)
{if(ch=='\n') printf("\n");
else printf("%4d",ch);
ch=fgetc(fp);
}
}
void change(char *filename)
{
FILE *fp;
char ch;
printf("16进制输出为:\n");
fp=fopen(filename,"r");
ch=fgetc(fp);
while(ch!=EOF)
{
if(ch=='\n') printf("\n");
else printf("%4x",ch);
ch=fgetc(fp);
}
fclose(fp);
}

截图展示

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

  • 3.静态库制作如下图:

  • 4.动态库制作如下图:

  • 5.makefile文件制作如下图:

    (1)首先,输入vim Makefile,编辑以下内容:



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

最新文章

  1. marquee标签,好神奇啊...
  2. ListView显示不同行以及数据重用
  3. linux shell
  4. TCP的几个状态
  5. Linux下Kafka单机安装配置方法(图文)
  6. Android开发-API指南-&lt;compatible-screens&gt;
  7. 003.ASP.NET MVC集中管理Session
  8. 使用struts2实现文件下载
  9. linux ls -l 详解
  10. J2SE知识点摘记(二十)
  11. ThinkPHP第十八天(Widget类的使用,连贯操作where IN用法,缓存S函数使用)
  12. cf1106E 线性dp+multiset
  13. Linux安装64位Mysql5.7
  14. MetaMask/safe-event-emitter
  15. Java - HashTable源码分析
  16. 如何使用ODBC搭配dsn链接数据库
  17. RestTemplate 发送 get 请求使用误区 多值为null
  18. mysql 用户授权命令
  19. 在centos系统安装mongodb
  20. join sql图

热门文章

  1. January 04 2017 Week 1st Wednesday
  2. Java.util 包(Date 类、Calendar类、Random类)
  3. Python2.7 - IMOOC - 1
  4. Burp Suite使用介绍总结
  5. jQueryeasyUI+Hibernate+struts2实现商城后台管理之添加操作时的unique验证
  6. php反序列化
  7. [转载] 我的WafBypass之道(SQL注入篇)
  8. webpack4配置
  9. Golang 单元测试和性能测试
  10. Maven下使用Junit对Spring进行单元测试