解决 free(): invalid pointer: 0x00000000019ff700 运行时报错(caffe)(libtool使用)
编译成功,运行时报错:
在使用 pytorch or tensorflow or caffe 时,都可能存在这个问题:
*** Error in `xxx': free(): invalid pointer: 0x00000000020663b0 ***
很可能是缺少libtcmalloc库
解决方法1:
apt-get安装libtcmalloc
sudo apt-get install libtcmalloc
然后打开~/.bashrc文件
sudo gedit ~/.bashrc
在文件末尾添加如下代码:
export LD_PRELOAD="/usr/lib/libtcmalloc_minimal.so.4"
最后重新载入环境变量即可
sudo source ~/.bashrc
但是我在服务器上是普通user,不是管理员sudoer,所以我采用了另一种方法
解决方法2:(推荐,只在自己的环境里安装,不会影响到服务器上其他人,不需要sudo权限)
github下载tcmalloc源码:
https://github.com/yangzhengxing/tcmalloc
解压,进入目录
./autogen.sh
(运行autogen命令时可能会提示:
那是因为你没有安装autoreconf,自行解决)
./configure
make -j4
然后就完成了,这是你会发现在tcmalloc目录中多了几个.la文件,则就是编译得到的结果。
关于什么是.la文件以及.la文件怎么用:
https://www.ibm.com/developerworks/cn/aix/library/1007_wuxh_libtool/
然后使用libtool工具将自己需要的库的.la文件生成.a和.so,这里我们需要tcmalloc和profiler两个,创建一个build文件夹存储生成的库
libtool --mode=install install -c libtcmalloc.la /home/zhangsuosheng/zss_output_feature_image/tcmalloc/build libtool --mode=install install -c libprofiler.la /home/zhangsuosheng/zss_output_feature_image/tcmalloc/build
然后我们就进行编译,
使用静态库编译:
g++ -std=c++ -o netapp.bin zss_featureimg.cpp `pkg-config --libs --cflags opencv` -I ~/caffe_mpi/include/ -I ~/caffe_mpi/src/ -I ~/caffe_mpi/build/src/ -I /usr/local/cuda/include/ -L ~/caffe_mpi/build/lib/ -lprotobuf -lcaffe -lglog -lboost_system /home/zhangsuosheng/zss_output_feature_image/tcmalloc/build/libprofiler.a /home/zhangsuosheng/zss_output_feature_image/tcmalloc/build/libtcmalloc.a
使用动态库编译:
g++ -std=c++ -o netapp.bin zss_featureimg.cpp `pkg-config --libs --cflags opencv` -I ~/caffe_mpi/include/ -I ~/caffe_mpi/src/ -I ~/caffe_mpi/build/src/ -I /usr/local/cuda/include/ -L ~/caffe_mpi/build/lib/ -L ~/zss_output_feature_image/tcmalloc/build/ -lprotobuf -lcaffe -lglog -lboost_system -lprofiler -ltcmalloc
然后编译成功
然后将这个build文件夹加到LD_LIBRARY_PATH中以便运行时能找到。
然后运行成功
最新文章
- Android Contextual Menus之一:floating context menu
- UIView.frame的骗局
- UVALive 6255 Kingdoms --状态搜索
- org.apache.flume.FlumeException: NettyAvroRpcClient { host: xxx.xxx.xxx.xxx, port: 41100 }: RPC
- 【BZOJ】【3676】【APIO2014】回文串
- Scrum角色
- (hdu)5423 Rikka with Tree (dfs)
- OpenCMS integration with Spring MVC--reference
- Mysql的执行顺序
- 使用nodejs的net模块创建TCP服务器
- Linux入门_1
- Mahout 系列之----共轭梯度
- WebServeice 动态代理类
- JS Object.defineProperties()方法
- location匹配
- Hadoop生态圈-Oozie实战之调度shell脚本
- 075 importSTV的使用,与bulkload的使用
- js,JavaScript 监听 判断 移动端 滑动事件
- Notepad++中支持Markdown
- hive使用derby的服务模式(可以远程模式)
热门文章
- Atitti. 语法树AST、后缀表达式、DAG、三地址代码
- config.sql
- Redis_发布订阅(Spring Boot)
- JSON 常用数据转换
- C#中Equals和==的比较
- httpclient 优化
- FirstLetterUtil
- Guardian of Decency UVALive - 3415 最大独立集=结点数-最大匹配数 老师带大学生旅游
- 微信小程序-page
- Sql_server四种执行ExecuteReader、ExecuteNonQuery、ExecuteScalar、DataSet.docx