---恢复内容开始---
信息安全系统设计基础第二周课堂实验
1-vi测试
本次课上因代码编译不通过导致所有实验都未能按时完成,故在此予以补做。
gcc -dg -o prog main.c add.c sub.c mul.c div.c
将光标移动到printf上按shift+k进入帮助界面
2-gcc测试
使用gcc ESc
(c为小写)---iso分别对这5个文件进行预处理、编译、汇编后 使用gcc ~.o ~.o -o
随意名称对.0文件进行链接
3-gdb测试
使用gcc -g *.c -o test
创建可gdb文件test,输入gdb test
开始gdb调试,再输入 l
(小写L)显示test文件内容。
4静态库的测试
ar rcs mymath.a add.o sub.o div.o mul.o
gcc -static -o 5220 main.o ./mymath.a
5共享库
gcc -shared -fpic -o libmymath.so add.c div.c mul.c sub.c
gcc -o 5220_2 main.c ./libmymaht.so
makefile
testmymath: main.o add.o sub.o mul.o div.o
gcc main.o add.o sub.o mul.o div.o -o testmymath
main.o: main.c head.h
gcc -c main.c
add.o: add.c head.h
gcc -c add.c
mul.o: mul.c head.h
gcc -c mul.c
div.o: div.c head.h
gcc -c div.c
myod
head.h:
#ifndef HEAD_H #define HEAD_H #include<stdio.h> #include<stdlib.h> void ascii(char *name); void sixteen(char *name); #endif
ascii.c:
#include"head.h" #include<stdio.h> void ascii(char *name) { FILE *fp; char ch; fp=fopen(name,"r"); ch=fgetc(fp); printf("ascii码输出为:\n"); while(ch!=EOF) { if(ch=='\n') printf("\n"); else printf("%d ",ch); ch=fgetc(fp); } }
sixteen.c:
#include"head.h" #include<stdio.h> void sixteen(char *name) { FILE *fp; char ch; printf("16进制输出为:\n"); fp=fopen(name,"r"); ch=fgetc(fp); while(ch!=EOF) { if(ch=='\n') printf("\n"); else printf("%x ",ch); ch=fgetc(fp); } fclose(fp); }
main:
#include"head.h" #include<stdio.h> void main(){ char name[50]; printf("od -tx -tc "); scanf("%s",name); ascii(name); printf("\n"); sixteen(name); }
j静态库
动态库