通过以下程序来练习
head.h
# ifndef HEAD_H
#define HEAD_H
#include <stdio.h>
int add(int,int);
int sub(int,int);
int mul(int,int);
double div(int,int);
#endif
add.c
#include "head.h"
int add(int a,int b)
{
return a+b;
}
sub.c
#include "head.h"
int sub(int a,int b)
{
return a-b;
}
mul.c
#include "head.h"
int mul(int a,int b)
{
return a*b;
}
div.c
#include "head.h"
double div(int a,int b)
{
return a/b;
}
main.c
#include "head.h"
int main(void)
{
int a,b;
printf("enter two numbers:");
scanf("%d %d",&a,&b);
printf("add:%d\n",add(a,b));
printf("sub:%d\n",sub(a,b));
printf("mul:%d\n",mul(a,b));
printf("div:%f\n",div(a,b));
return 0;
}
编译和运行以上代码:
制作(add.c,sub.c,mul.c,div.c)四个模块的mymath.a静态库;
main.c使用静态库;
制作(add.c,sub.c,mul.c,div.c)四个模块的mymath.so共享库;
main.c使用共享库;
编译目标文件为testmymath的makefile
遇到的问题
- 1、程序编译出现问题
- 解决方法:在head.h和main.c中缺少头文件,分别在head.h中添加#include "stdio.h",在main.c中添加#include "head.h"的头文件
- 2、makefile的编写出现问题
- 解决方法:发现这个错误是由makefile中的tab的长度导致的,在makefile中的命令需要以tab键开始,在.vimrc文件中发现没有设置tab键的默认长度,然后在.vimrc中添加如下配 置:set tabstop=4,问题解决