本文主要是介绍深入理解计算机系统 CSAPP 第七章 与静态库链接,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
//addvec.c
int addcnt = 0;
void addvec(int *x ,int *y,int *z,int n)
{int i;addcnt++;for(i=0;i<n;i++)z[i]=x[i]+y[i];
}
//multvec.cint multcnt = 0;
void multvec(int *x ,int *y,int *z,int n)
{int i;multcnt++;for(i=0;i<n;i++)z[i]=x[i]*y[i];
}
addvec.c和multvec.c 放在一个文件夹,然后在这个文件夹右键打开终端
gcc -c addvec.c multvec.c
ar rcs libvector.a addvec.o multvec.o
运行完两个指令后会得到库文件
//vector.h
void multvec(int *x ,int *y,int *z,int n);
void addvec(int *x ,int *y,int *z,int n);
再创建一个.h文件里面把两个函数的原型写上
主文件main2.c也创建好
//main2.c
#include <stdio.h>
#include "vector.h"
int x[2]= {1,2};
int y[2]= {3,4};
int z[2];int main()
{addvec(x,y,z,2);printf("z= [%d %d]\n",z[0],z[1]);return 0;
}
运行以下指令
gcc -c main2.c
gcc -static -o prog2c main2.o ./libvector.a
./prog2c
会得到如下结果符合预期:
这就是与静态库链接的整个过程
这篇关于深入理解计算机系统 CSAPP 第七章 与静态库链接的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!