一、制作动态库
使用 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