【发布时间】:2021-09-13 06:16:24
【问题描述】:
我看到 Where can I find GLIBCXX_3.4.29? 没有回答我的具体问题。
根据strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX,我有GLIBCXX_3.4.29。我特别问我如何在我的 anaconda 环境中获得它。根据安装说明conda libgcc,我有最新版本的 conda,7.2.0,但GLIBCXX_3.4.29 不符合我正在运行的某些代码所需的版本
解决下面的评论
最好知道你要运行什么
我正在尝试运行一些使用内部.so 文件的代码。我之前已经成功运行过它,但我猜测当我更新用于生成 .so 文件的库时发生了一些变化。
注意:我已尝试将 git checkout 库转换为旧版本并重新构建所有库,但我仍然面临问题。
我是如何创建环境的
conda create -n crannog python=3.6
conda activate crannog
pip install -r requirements.txt
【问题讨论】:
-
此类问题通常与通道混合或环境泄漏有关,而不是必须操作库。即,您可能正在尝试解决症状,而不是根本问题。最好知道您要运行什么,如何创建环境,甚至可能是您的环境的完整
conda list。 -
谢谢!我添加了
requirements.txt和conda list结果并将它们粘贴到上面的链接中。还有哪些有用的信息? -
对此进行调查,the ABI section of GCC manual 表示只有 GCC 11 构建具有此要求。 9.3.0 (GLIBCXX_3.4.28) 之后没有任何 Conda 通道构建 GCC。我认为您的选择是 1)自己构建 2)nag Conda Forge maintainers 构建 GCC 11(和
libstdcxx-ng) 3)说服在您的组织中构建 .so 的人以更向后兼容的方式构建(例如,他们是否真的需要 C++20 特性吗?)。 -
啊,废话。好的谢谢。你知道我是否可以让 conda 寻找我的系统级包而不是 conda 吗?我得研究一下...我认为我们不需要 C++20,因为上次我检查了它在 C++11 上都可以工作。
-
GCC 11 编译器现在存在于 conda-forge 上,可以安装为“conda install -c conda-forge gxx_linux-64==11.1.0”。它解决了这个问题。