首页 > 代码库 > linux下动态库的创建与使用
linux下动态库的创建与使用
动态库创建
1.编译动态库
Vim add.cpp
int add(int a, int b)
{
return a + b;
}
Vim add.h
Int add(int a, int b);
g++ add.cpp -o libadd.so -fPIC -shared
2.链接动态库
#include "add.h"
#include <iostream>
int main()
{
int ret = add(2, 3);
std::cout << ret << std::endl;
return 0;
}
g++ main.cpp -o main -I. -L. -ladd
3.设置动态库加载路径
编译好程序后,运行,会出现问题,如下
我们需要把main程序运行需要的动态库加入到系统加载动态库路径中
centos系统中,在/etc/ld.so.conf中可以看到该系统的动态库加载路径
将libadd.so放到该路径后,或者将libadd.so所在目录加入到ld.so.conf中
运行ldconfig命令,更新系统动态库缓存
使用lddconfig -p|grep libadd.so 看一下该库是否在动态库缓存中
一般动态库加载到动态库缓存中,程序就可以调用到它了。
常用的关于动态库的命令:
有时候动态库会报找不到某个函数的错误,使用
ldd -r libadd.so 命令,查看libadd.so的依赖项,看看它是否有依赖项缺失
原创内容,转载请注明出处http://www.cnblogs.com/abcdk/p/6719217.html
linux下动态库的创建与使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。