lua加载动态库缺乏相应的系统库
错误信息:
使用lua测试lm2动态库时,加载时出现如下错误
jfyuan@jfy11-B85M-D2V:~/temp/service/soft/code/ginger_resty/cores/lm2/test$ lua lm2_test.lua ./param.txt /home/wlc/SpeechdServer/speechd-centos_6.2-x86_64-0.5.0-20140317150535/modules//lm/res/eng.pred/lm.eng.pred.sh
lua: error loading module 'aicores.liblm2' from file './aicores/liblm2.so':
./aicores/liblm2.so: undefined symbol: pthread_mutexattr_destroy
stack traceback:
[C]: ?
[C]: in function 'require'
lm2_test.lua:1: in main chunk
[C]: ?
而ldd时又看不见需要线程动态库
jfyuan@jfy11-B85M-D2V:~/temp/service/soft/code/ginger_resty/cores/lm2$ ldd liblm2.so
linux-vdso.so.1 => (0x00007fff5cddf000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd667978000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd667671000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd66745b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd667096000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd668215000)
原因可能是lua的require加载模块会对所有导出函数检查依赖库
解决办法:export LD_PRELOAD=/opt/intel/mkl/lib/intel64/libmkl_core.so:/opt/intel/mkl/lib/intel64/libmkl_sequential.so:/usr/local/lib/libiconv.so.2:/lib/x86_64-linux-gnu/libpthread.so.0
jfyuan@jfy11-B85M-D2V:~/temp/service/soft/code/ginger_resty/cores/lm2/test$ ldd aicores/liblm2.so
linux-vdso.so.1 => (0x00007fffe65e6000)
/opt/intel/mkl/lib/intel64/libmkl_core.so (0x00007f9c43ce4000)
/opt/intel/mkl/lib/intel64/libmkl_sequential.so (0x00007f9c43645000)
/usr/local/lib/libiconv.so.2 (0x00007f9c43360000)
/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f9c43142000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f9c42e14000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9c42b0e000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9c428f8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9c42532000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9c4232e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9c45462000)
lua加载动态库缺乏相应的系统库的更多相关文章
- 【转载】cocos2dx 中 Android NDK 加载动态库的问题
原文地址:http://blog.csdn.net/sozell/article/details/10551309 cocos2dx 中 Android NDK 加载动态库的问题 闲聊 最近在接入各 ...
- Linux下c函数dlopen实现加载动态库so文件代码举例
dlopen()是一个强大的库函数.该函数将打开一个新库,并把它装入内存.该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的.这种机制使得在系统中添加或者删除一个模块时,都不需要重新编译了. ...
- LoadLibrary加载动态库失败
[1]LoadLibrary加载动态库失败的可能原因以及解决方案: (1)dll动态库文件路径不对.此场景细分为以下几种情况: 1.1 文件路径的确错误.比如:本来欲加载的是A文件夹下的动态库a.dl ...
- QT常用代码之加载动态库和弹出对话框
作者:朱金灿 来源:http://blog.csdn.net/clever101 加载动态库的代码: typedef void (*Execute)(); // 定义导出函数类型 QString st ...
- Windows平台LoadLibrary加载动态库搜索路径的问题
一.背景 在给Adobe Premiere/After Effects等后期制作软件开发第三方插件的时候,我们总希望插件依赖的动态库能够脱离插件的位置,单独存储到另外一个地方.这样一方面可以与其他程序 ...
- QLibrary 加载动态库
阅读本文大概需要 6.6分钟 一般情况下在没有头文件支持情况下,想要引入某个动态库,最好的办法就是使用「动态加载」的方法,在Qt中一般使用QLibyary来操作 常用 api QLibrary(con ...
- 使用dlopen加载动态库
目录 概述 接口 C CMakeLists.txt src/main.c src/add.c ./dlopen_test C++ CMakeLists.txt src/main.cpp src/add ...
- macOS下加载动态库dylib报"code signature invalid"错误的解决办法
一.现象描述 在macOS上搞开发也有一段时间了,也积攒了一定的经验.然而,今天在替换工程中的一个动态库时还是碰到了一个问题.原来工程中用的是一个静态库,调试时发现有问题就把它替换成了动态库.这本来没 ...
- C++加载动态库的形式来实现封装
目录结构 └── test ├── CMakeLists.txt ├── base.h //设置接口 ├── drive.cpp //具体实现 └── main.cpp //test CMakeLis ...
随机推荐
- linux 之SCP
一.从本地到远程复制 1.复制文件 * 命令格式: 1.scp -P remote_port local_file remote_username@remote_ip:remote_folder 或者 ...
- spark standalone模式单节点启动多个executor
以前为了在一台机器上启动多个executor都是通过instance多个worker来实现的,因为standalone模式默认在一台worker上启动一个executor,造成了很大的不便利,并且会造 ...
- rpc选择标准
衡量RPC好用与否的几条标准: 真的像本地函数一样调用 使用简单,用户只需要关注业务即可 灵活,RPC调用的序列化方式可以自由定制,比如支持json,支持msgpack等方式 http://www.o ...
- 回顾CSS布局易混淆的概念
一.浮动模型 元素默认是static的,不能浮动,但可以用CSS样式设置为浮动 浮动模型只有两个值 float:left 和 float:right ,可以让块状元素同行显示 二.层模型 top/bo ...
- iOS基础篇(十五)——UIScrollView的基本用法
滚动视图(UIScrollView)通常用于显示内容尺寸大于屏幕尺寸的视图. 一.基本属性 1.CGSize contentSize :设置UIScrollView的滚动范围 2.CGPoint co ...
- 10个优秀的JavaScript Web UI库/框架推荐
在进行Web开发时,并非所有的库都适合你的项目,但你仍需要收藏一些Web UI设计相关的库或框架,以在你需要的时候,加快你的开发效率. 本文为你带来10款非常优秀的基于JavaScript的Web U ...
- iOS开发UI篇—直接使用UITableView Controller
iOS开发UI篇—直接使用UITableView Controller 一.一般过程 // // YYViewController.h // UITableView Controller // // ...
- C# 跨线程操作无效
提示此错误的原因就是控件由主线程创建,在另一个线程进行操作时就会被阻止,防止数据间随意篡改. 如果一定要跨线程作业,如进度条或状态显示等,基本有三种方法解决: 1.Control.CheckForIl ...
- MATLAB 图像分类 Image Category Classification Using Bag of Features
使用MATLAB实现图像的识别,这是MATLAB官网上面的例子,学习一下. http://cn.mathworks.com/help/vision/examples/image-category-cl ...
- php超全局数组变量
(1)$_SERVER 服务器的相关信息 (2)$_GET 接收用户通过url向服务器传的参数 $POST 接收用户通过http协议向服务器传递的参数 发送get请求 <a href=&quo ...