C语言的动态库的编译与链接

第一步:准备自己的动态库源文件

先准备自己的动态库文件。这里我用我自己的做一下演示。

a.c

#include

int testa(int a ,int b){
    
return a+b;
}

b.c

#include

int testb(int a ,int b){
    
return a-b;
}

c.c

#include

int testc(int a ,int b){
    
return a*b;
}

第二步将源文件编译生成.o文件

 第三步:生成动态库.so文件

动态库文件命名规则必须是lib开头的

 第四步:如何使用这个动态库。--------动态编译

-L后面是动态库的路径  -l接动态库名,不加前缀的。

现在经将动态库链接到了我们的main函数上,一下是main函数源码和运行效果

#include 
int testa(int a, int b);
int testb(int a, int b);
int testc(int a, int b);
int main(int argc, char const *argv[])
{    
    int a = 25;
    int b = 5;
    printf("a+b=%d\n", testa(a, b));
    printf("a-b=%d\n", testb(a, b));
    printf("a*b=%d\n", testc(a, b));
    return 0;
}

 

注意:动态库要放在计算机配置好的环境变量中,或者给动态库所在位置配置环境变量。不然就会出现找不到库的问题。

解决办法

方法1:把你的动态库移动到系统的/lib

方法2:直接将你的动态库所在的文件路径设为系统环境变量,步骤如下:

第一步:打开配置文件:

输入:sudo gedit ~/.bashrc

 添加配置;

export LD_LIBRARY_PATH=/mnt/hgfs/qianrushi/code/bin:$LD_LIBRARY_PATH

C语言的动态库的编译与链接_第1张图片

 然后关闭环境配置文件,重启一下文件:

source ~/.bashrc

然后去操作第四步就行了。

你可能感兴趣的:(C语言,算法,c语言,开发语言)