XGBoost 在 Ubuntu 18.04 上失败,并出现未找到 GLIBCXX_3.4.26 错误

XGBoost 在 Ubuntu 18.04 上失败,并出现未找到 GLIBCXX_3.4.26 错误

我正在尝试在 Ubuntu 18.04 机器上运行一些调用 XGBoost 的代码。此代码失败AttributeError: 'XGBoostCostModel' object has no attribute 'pool',根本原因是:

Error message(s): ["/usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /root/anaconda/envs/spell/lib/libxgboost.so)"]

我对 C/C++ 打包工具链一无所知。运行以下代码片段(在类似问题的其他答案中建议)将返回以下内容:

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBC_2.2.5
GLIBC_2.3
GLIBC_2.14
GLIBC_2.4
GLIBC_2.18
GLIBC_2.16
GLIBC_2.3.4
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

GLIBCXX_3.4.26确实似乎缺少此列表。但是,我无法弄清楚apt需要运行什么命令才能获得足够新的内容。当我运行apt-get update && apt-get install libstdc++6(不sudo,因为这是在 Docker 容器中)时,我被告知:

libstdc++6 is already the newest version (8.4.0-1ubuntu1~18.04).

怎么办?

答案1

一位同事建议降级到旧版本xgboost。这样做解决了这个问题(使用xgboost==1.1.0)。

据我所知,这意味着最新版本xgboost与 Ubuntu 18.04 不兼容,因为它们使用的编译器工具链版本对于 18.04 来说太新且不受 18.04 的支持。

相关内容