asterisk1.8 for mipsel mysql

在astersik上要使用mysql数据库的话,需要加载跟mysql相关的3个模块

res_config_mysql.so

app_mysql.so

cdr_mysql.so

但是这个三个模块一直加载不上,自己写了程序用dlopen依然加载不上,用dlerror函数将错误信息打印出来:

file not found。

但是反复检查了路径,没有问题。

用readelf  -h检查了动态库,也没有问题,用的是MIPS R3000的指令集。

用objdump  -x  res_config_mysql.so  |  grep  NEEDED发现它依赖5个库

libmysqlclient.so.16

libcrypt.so.0

libnsl.so.0

libm.so.0

libc.so.0

在文件系统里的lib文件夹下,看了看,发现没有libmysqlclient.so.16,将交叉编译后的mysql库弄到lib下,再加载就可以了。

结论:dlopen在加载动态库时会同时加载它依赖的库文件,如果找不到依赖库就会报file not found

你可能感兴趣的:(asterisk1.8 for mipsel mysql)