Ubuntu 下配置 boost + eclipse

[1] 给出在 ubuntu 下配置 boost + eclipse 步骤, 写的比较具体, 但是配置完后并不能正确运行, 主要是出了两个错误

[4] for general purpose, worked for me. 

出现的错误

1. 找不到 libboost_regex or cannot find -lboost_system

查看 boost 是否配置成功了, 找到 boost/stage/lib 并确定文件夹下有 regex 相关的库, 造成配置失败的原因有可能是配置 boost 的前置工作没做好, 先运行这个命令 sudo apt-get install python2.6-dev libicu-dev libbz2-dev 再配置 boost

2. cannot find shared library

在 eclipse 上运行时, 报错是 cannot find shared libray xxx, 用命令行运行时 termial 直接卡死. 通过 [3] 我了解到动态链接库的配置问题, 像 LD_LIBRARY_PATH 还是第一次见到, [3] 提供了解决这个办法的途径, 就是修改 /etc/ld.so.conf, 我的确也是这个做的, 并在 eclipse 上运行成功. 不过 [2] 对于这个问题描述的更好, 简单, 明了.

3. boost include 放的位置

这个错误比较容易解决, 配置好 boost 后复制一份 boost 文件夹到 usr/include 下即可, linux 默认去 /usr/include 下查找头文件

总结

1. boost 含有不需要编译的库和需要编译的库. 对于不需要编译的库, 只要安装好 boost 直接include 即可, 比如 boost/timer.hpp, boost/version.hpp. 而对于需要编译的库, 则需要链接, 这个时候, g++ -o regex regex_test.cpp 就会报错, 需要在末尾加上 -lboost_regex(相对路径的话需要你做好适当的配置, 具体怎么弄, 我还不懂)

2. 第一次安装 boost 时, 直接使用 apt-get install, 前置工作没做导致装好的 boost 没法用, 同时 apt-get install 安装后的程序也不知被放在哪了. 解决的途径是用 dpkg 程序.

dpkg 专门用来卸载删除软件, 对于 boost 的删除

dpkg -S /usr/include/boost/version.hpp // 找到文件的 packet name

sudo apt-get autoremove packetname // 卸载 packet

Reference

[1] http://sourabhsoni.com/boost-threads-example-in-eclipse-ubuntu/

[2] http://robbinfan.com/blog/9/gcc-linker-basic-usage

[3] http://www.xuebuyuan.com/96896.html

[4] http://www.cnblogs.com/longcpp/archive/2012/06/06/2538251.html

原文地址:https://www.cnblogs.com/zhouzhuo/p/3696631.html