在linux操作系统下,实现静态库的调用
一、镜像文件的选择
之前采用的是ubuntu,但是个人感觉虽然ubuntu比centos轻量化了,但是阉割掉了很多东西,很多工具包都默认没有,需要自己去安装,但是这个安装的过程中又会出现很多问题,所以要是想一劳永逸,不如多费点内存安装个centos7算了,我都要快被ubuntu搞死了。下了centos7之后,嗯真香!
附上我的centos7镜像网盘目录,ubuntu也有。
CentOs7:
链接:https://pan.baidu.com/s/1zkfqDQeESUXl9mz0AOjvjQ
提取码:qets
复制这段内容后打开百度网盘手机App,操作更方便哦
UbunTu:
链接:https://pan.baidu.com/s/1e1qLjHDZJeYodLt24bTHDg
提取码:irvf
复制这段内容后打开百度网盘手机App,操作更方便哦
二、代码文件
创建两个.c文件,内容如下:
/*unsgn_pow.c:库程序*/
#include <stdio.h>
unsigned long long unsgn_pow(unsigned int x,unsigned int y)
{
unsigned long long res = 1;
if (y==0){
res = 1;
}else if (y -= 1){
res =x;
}else{
res= x*unsgn_pow(x,y-1);
}
return res;
}
/*pow_test.c */
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv){
unsigned int x,y;
unsigned long long res;
if((argc<3)||(sscanf(argv[1],"%u",&x)!= 1)||(sscanf(argv[2],"%u",&y)!=1)){
printf("Usage: pow base exponent\n");
exit(1);
}
res=unsgn_pow(x,y);
printf("%u^%u = %u\n", x,y,res);
exit(0);
return 0;
}
三、编译并运行
- cd Desktop #因为我两个.c文件都创建在桌面,所以先进入桌面文件夹
- ls #查看一下当前桌面是否存在这两个文件
- gcc -c unsgn_pow.c #编译函数文件
- ar -rcsv libpow.a unsgn_pow.o #生成静态函数库
- gcc -o pow_test pow_test.c -L. -lpow #编译main函数
- ./pow_test 2 10 #输入参数直接执行函数
- 最后出现结果即表示调用成功!