找到正确的Boost版本以及如何删除旧版本

时间:2017-12-04 06:45:25

标签: c++ boost boost-serialization

我之前已经安装了boost

sudo apt-get libboost-dev
sudo apt-get libboost-all-dev

我想我得到了boost 1.58

然后我需要boost的最新boost_serialization,因为我尝试通过从here下载,然后从以下命令安装boost

tar --bzip2 -xf boost_1_65_1.tar.bz2
./bootstrap.sh --prefix=/usr/
sudo checkinstall ./b2 install 

我检查了以不同方式安装的boost版本。

第一

std::cout << "Using Boost "
            << BOOST_VERSION / 100000     << "."  // major version
            << BOOST_VERSION / 100 % 1000 << "."  // minor version
            << BOOST_VERSION % 100                // patch level
            << std::endl;

给出了Using Boost 1.65.1

第二

dpkg -S /usr/include/boost/version.hpp

给出了libboost1.58-dev:amd64: /usr/include/boost/version.hpp

第三

cat /usr/include/boost/version.hpp | grep "BOOST_LIB_VERSION"

显示// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION #define BOOST_LIB_VERSION "1_65_1"

dpkg -s libboost-dev | grep 'Version'

显示Version: 1.58.0.1ubuntu1

有什么区别?我是否安装了两个版本或仅1.65

我尝试按1.58删除sudo apt-get autoremove,但我再次收到相同的信息。

我也试过删除旧的

dpkg -S /usr/include/boost/version.hpp
sudo apt-get autoremove package

它只显示以下信息

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package package

1 个答案:

答案 0 :(得分:2)

构建和安装tarball不会更新apt认为安装的内容,因为你使用/ usr作为你的前缀它可能已经覆盖了实际的文件,但apt仍然认为旧的版本已经安装。