gpt4 book ai didi

c++ - 在 Linux Mint 上使用多个版本的 libboost

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:13 25 4
gpt4 key购买 nike

我正在 Linux Mint 上重新编译一些使用 libboost 的 C++ 代码。从 Mint 18 升级到 Mint 19.3 之前,代码运行良好。从那时起,我可以编译代码,但在执行过程中,它会失败,并因一次或多次调用 boost::filesytem::create_directories 生成错误

在网络上搜索,似乎问题可能是由于库版本不兼容造成的,而且在安装 1.65 时,似乎有 1.58 版本的库在运行,例如在此文件夹中/usr/lib/x86_64-linux-gnu(或类似的东西)。

当我尝试像这样的“网络解决方案”时 sudo rm -f/usr/lib/x86_64-linux-gnu/libboost_* (然后重新安装)或者 sudo rm -f/usr/lib/x86_64-linux-gnu/libboost_*.so.1.5.8.0

没有任何变化(即文件似乎与执行错误一样保留)。

当我重新运行之前编译的代码的拷贝时,代码不会失败。

谁能建议我如何解决这个问题?我正在编译的代码很大,而不是我自己的,所以我不知道从哪里开始更改函数调用。事实上,我认为这不是问题所在。我认为我需要知道的是如何清除旧安装的残余和/或将所有内容重新指向最新安装。

FWIW,我已经尝试过这里的建议 Uninstall boost and install another version但它似乎并没有让我前进。

最佳答案

(代表问题作者发布解决方案,以便将答案移至答案空间)

解决这个问题的方法是不删除系统默认版本,而是在不同位置安装其他版本,然后使用 cmake 的 EXT_HINT 标志优先选择它们。

boost 站点建议(通过 1.60 的发行说明)修复了与 create_directories 的返回值相关的问题。无论如何,我能够通过在编译期间指向版本 1.58(而不是版本 1.60、1.65 或 1.72)来使代码“按编写的方式”工作。

关于c++ - 在 Linux Mint 上使用多个版本的 libboost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59883292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com