20155233刘高乐 第二周课堂实践以及MyOD
2024-10-19 02:25:10
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)其次,输入以下命令执行文件:
最新文章
- marquee标签,好神奇啊...
- ListView显示不同行以及数据重用
- linux shell
- TCP的几个状态
- Linux下Kafka单机安装配置方法(图文)
- Android开发-API指南-<;compatible-screens>;
- 003.ASP.NET MVC集中管理Session
- 使用struts2实现文件下载
- linux ls -l 详解
- J2SE知识点摘记(二十)
- ThinkPHP第十八天(Widget类的使用,连贯操作where IN用法,缓存S函数使用)
- cf1106E 线性dp+multiset
- Linux安装64位Mysql5.7
- MetaMask/safe-event-emitter
- Java - HashTable源码分析
- 如何使用ODBC搭配dsn链接数据库
- RestTemplate 发送 get 请求使用误区 多值为null
- mysql 用户授权命令
- 在centos系统安装mongodb
- join sql图