【问题标题】:Find correct Boost version installed and how to remove the old version查找已安装的正确 Boost 版本以及如何删除旧版本
【发布时间】:2018-05-17 14:16:05
【问题描述】:

我之前安装了boost

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

我想我得到了boost 1.58

然后我需要最新的boostboost_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

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

我也试过删除旧的

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

【问题讨论】:

标签: c++ boost boost-serialization


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    相关资源
    最近更新 更多