ros pluginlib 段错误
最近在重新回看ROS插件时,运行出现了段错误,发现是boost版本问题,我目前版本是1.66,应该调整至1.58版本,如果跟其他软件使用不同的boost版本时,可以把相应版本编译到本地,不install到根目录,在链接库文件和找头文件时,可以指定目录寻找,即可!
安装两个版本。
我这里考虑bitshares源码采用1.60,eos版本采用1.67,步骤如下:
一、先去下载 tar.gz文件 https://www.boost.org/users/history/,分别下载boost_1_60_0.tar.gz和boost_1_67_0.tar.gz
二、安装boost1.60,终端执行如下指令
> tar -zxvf boost_1_60_0.tar.gz && cd boost_1_60_0
> su - root
> ./boottrap.sh --with-libraries=all
> ./b2
> ./b2 install
#我编译bitshare项目多一点,就使用./b2 install 把boost1.60安装在默认路径了,即/usr/local下,头文件和库文件分别位于/usr/local/include和/usr/local/lib中。
三、安装boost1.67, 解压和编译源码还是跟上边一样,但是最后./b2 install指令跟上prefix 参数,指定安装路径:
...
mkdir /usr/local/opt/boost1.67
./b2 install --prefix=/usr/local/opt/boost1.67
这样安装完后头文件和lib文件就分别位于/usr/local/opt/boost1.67下的include和lib文件下
安装就完成了
四、为项目指定boost库
bitshares和eos源码使用cmakelist组织,其通过FIND_PACKAGE(Boost ...)指令来搜索boost所在的目录,如果不加以设置的话都会默认搜索到/usr/local/下的boost1.60版本,因为bitshare用boost1.60是ok的,这里需要设置的是eos项目,方法如下:
1.如果采用终端cmake指令编译,则加上-D参数:
cd <eos_code_root>
cmake -DBOOST_ROOT=/usr/local/opt/boost1.67 .
2.如果采用ide,就需要在ide中设置环境变量,比如我用的是clion:
clion->preferences->Build,Execution,Deployment->Cmake->environment,添加BOOST_ROOT=/usr/local/opt/boost1.67
但是clion设置环境变量需要一定的反应时间,设置好后最好重启一下clion,如果还是检索出来别的版本,就再耐心等一下。
ros pluginlib 段错误的更多相关文章
- 【转】段错误调试神器 - Core Dump详解
from:http://www.embeddedlinux.org.cn/html/jishuzixun/201307/08-2594.html 段错误调试神器 - Core Dump详解 来源:互联 ...
- linux下cp覆盖原so文件时引起的段错误原因确定
原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5694416.html 最近因为一个很有意思的段错误学习了一些新的东西. 当时现象是这样的,程序正在运行,系 ...
- ubuntu segmentation fault 段错误
1.段错误 http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 2.段错误的调试方法 2.1使用printf输出信息 2 ...
- Linux环境下段错误的产生原因及调试方法小结(转)
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...
- linux Ubuntu(Segmentation fault)段错误出现原因及调试方法
在linux下编译了一个程序,尝试运行的时候出现: Segmentation fault (core dumped) 初步确认为...完全不知道是什么玩意. 于是找度娘了. ----------- ...
- 关于 strcpy 段错误
int main(){ char * s = "hello,world" ; char *t = "happy"; strcpy(s,t) ; // error ...
- Linux环境下段错误的产生原因及调试方法小结
转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...
- 什么是core dump linux下用core和gdb查询出现"段错误"的地方
什么是core dump linux下用core和gdb查询出现"段错误"的地方 http://blog.chinaunix.net/uid-26833883-id-31932 ...
- 【转】gdb 调试段错误
[转]gdb 调试段错误 转自:blog.csdn.net/yangzhu1982/article/details/6318600 开发嵌入式Linux的时候经常会遇到segmentation fau ...
随机推荐
- Python 多继承与MRO-C3算法
继承关系图:树结构 广度优先遍历:先找A,再找B.C,最后找D.E.(顺序:A.B.C) 深度优先遍历:先找A,再找B,接着找D.E(把B里面找完):然后找C.(顺序:A.B.D.E.C) MRO-C ...
- 【Scheme】符号求导
思路: 定义一个求导算法, 令其在抽象对象上执行求导操作. 可以由以下规约规则完成: dc/dx=0 dx/dx=1 d(u+v)/dx=du/dx+dv/dx d(uv)/dx=u(dv/dx)+v ...
- 能判断是电脑端还是手机端的javascript
<script language="javascript"> //平台.设备和操作系统 var system ={ win : false, mac : false, ...
- vue通过ID(参数)修改URL复用同一个页面(组件)不重新加载的问题
项目中经常会用到同一个页面,结构是相同的,我只是在vue-router中通过添加参数的方式来区分状态,参数可以在页面跳转时带上params,或者query,但是有一个问题,即使我们修改了参数,URL也 ...
- 事务、cookie、session操作
事务 import os if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE','BMS.settings ...
- PAT1020 (已知中序,后序遍历转前序遍历)
已知后序与中序输出前序(先序):后序:3, 4, 2, 6, 5, 1(左右根)中序:3, 2, 4, 1, 6, 5(左根右) 已知一棵二叉树,输出前,中,后时我们采用递归的方式.同样也应该利用递归 ...
- NoHtml
private string NoHtml(string Htmlstring) { if (string.IsNullOrWhiteSpace(Htmlstring)) return string. ...
- c#控件的动画显示效果
1. 缘由: 项目中任务完成有个提示,需要以动画效果展示,其效果当如下图: 此为老项目为Delphi所写,改用c#实现,此效果做些设计.本也不难,小技而已,但为易于扩展,写了个静态类实现. 2. A ...
- Kylin介绍,功能特点【转】
Apache Kylin是一个开源的分布式分析引擎.完全由eBay Inc.中国团队开发 并贡献至开源社区.提供Hadoop之上的SQL查询接口及多维分析(MOLAP)能力以 支持大规模数据能在亚秒内 ...
- vue的通讯与传递props emit (简单的弹框组件)
props父把信息传递给子组件 1父组件 <template> <div class="hello"> <div id="app-3&quo ...