Linux 制作使用动态库

Posted by KalosAner on March 28, 2025

一、制作动态库

使用 C++ 程序制作动态库和直接编译这个程序的命令一样,只是参数稍微不同。如果代码里边用到了线程库在制作动态库的时候不需要链接 -lpthread 或者 -pthread,在使用的时候链接就行。下面是制作动态库的 Linux 命令:

1
g++ -fPIC -shared demo.cpp -o libdemo.so -std=c++11

动态库命名需要以 libxxx.so 格式命名。

二、使用动态库

使用动态库需要一下几个步骤(都需要在 root 权限下):

1、将动态库和头文件(一般都有头文件)放到特定的文件夹

2、配置链接动态库的配置文件

3、刷新链接动态库的配置文件

首先,需要把制作好的动态库放到 /usr/local/lib/ 或者 /usr/lib/ ,后者的路径下有很多系统的系统的文件,所以建议放在前者的路径下。头文件放到 /usr/local/include/ 或者 /usr/include/,同理建议放在前者的路径下。

1
2
mv libdemo.so /usr/local/lib/
mv libdemo.h /usr/local/include/

然后配置链接动态库的配置文件(我测试了一下,如果直接把动态库放到 /usr/lib/ 这个路径下就不需要配置)。gcc 在链接的使用是通过 /usr/bin/ld 这个程序进行的,这个程序会在 /etc/ld.so.cache 这个文件中找动态库的路径。这个文件不可以直接修改,可以在 /etc/ld.so.conf.d/ 这个路径下创建一个自己的配置并添加 /usr/local/lib/ 这条路经。

/etc/ld.so.conf 这个文件会包含 /etc/ld.so.conf.d/ 所有的配置文件。

1
2
3
vim /etc/ld.so.conf.d/democonf.conf

/usr/local/lib/

最后刷新刚进行的配置。

1
ldconfig