最近在重新回看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 段错误的更多相关文章

  1. 【转】段错误调试神器 - Core Dump详解

    from:http://www.embeddedlinux.org.cn/html/jishuzixun/201307/08-2594.html 段错误调试神器 - Core Dump详解 来源:互联 ...

  2. linux下cp覆盖原so文件时引起的段错误原因确定

    原创作品,转载请注明出处http://www.cnblogs.com/leo0000/p/5694416.html 最近因为一个很有意思的段错误学习了一些新的东西. 当时现象是这样的,程序正在运行,系 ...

  3. ubuntu segmentation fault 段错误

    1.段错误 http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 2.段错误的调试方法 2.1使用printf输出信息 2 ...

  4. Linux环境下段错误的产生原因及调试方法小结(转)

    最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation F ...

  5. linux Ubuntu(Segmentation fault)段错误出现原因及调试方法

      在linux下编译了一个程序,尝试运行的时候出现: Segmentation fault (core dumped) 初步确认为...完全不知道是什么玩意. 于是找度娘了. ----------- ...

  6. 关于 strcpy 段错误

    int main(){ char * s = "hello,world" ; char *t = "happy"; strcpy(s,t) ; // error ...

  7. Linux环境下段错误的产生原因及调试方法小结

    转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之 ...

  8. 什么是core dump linux下用core和gdb查询出现"段错误"的地方

    什么是core dump   linux下用core和gdb查询出现"段错误"的地方 http://blog.chinaunix.net/uid-26833883-id-31932 ...

  9. 【转】gdb 调试段错误

    [转]gdb 调试段错误 转自:blog.csdn.net/yangzhu1982/article/details/6318600 开发嵌入式Linux的时候经常会遇到segmentation fau ...

随机推荐

  1. putty颜色调整

    右键window窗口--Changing Setting--window--Colours: * Default Foreground: 255/255/255 * Default Backgroun ...

  2. JVisual 相关help参数

    The launcher has determined that the parent process has a console and will reuse it for its own cons ...

  3. web漏洞详解及修复建议

    1.漏洞描述 跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私.钓鱼欺骗.偷取密码.传播恶意代码等攻击行为. 恶意的攻击者将对客户端有危害的 ...

  4. SSM的例子-参考

    ssm的例子:http://blog.csdn.net/double030/article/details/63683613

  5. SQLdeveloper换成windows主题后不显示的情况

    这几天因为换电脑需要重新安装数据库, 因为换成了64位系统, 原先的oracle数据库也换成了64位, 但是plsql还是要用32位的, 经过深思熟虑也没装, 请教了一个同学改用oracle自带的sq ...

  6. NumPy 切片和索引

    NumPy 切片和索引 ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样. ndarray 数组可以基于 0 - n 的下标进行索引,切片对象可以 ...

  7. 最长公共子序列lcs 51nod1006

    推荐参考博客:动态规划基础篇之最长公共子序列问题 - CSDN博客  https://blog.csdn.net/lz161530245/article/details/76943991 个人觉得上面 ...

  8. 二分+最短路 UVALive - 4223

    题目链接:https://vjudge.net/contest/244167#problem/E 这题做了好久都还是超时,看了博客才发现可以用二分+最短路(dijkstra和spfa都可以),也可以用 ...

  9. 静态方法调用内部类时候的new 问题

    package tool; /** * 静态方法调用内部类时候的new 问题 */ public class aa { // 静态方法 // 静态方法new 有问题 public static voi ...

  10. DialogFragment 对话框 碎片

    package com.example.m_evolution; import android.app.Dialog; import android.app.DialogFragment; impor ...