gpt4 book ai didi

c++ - Ubuntu 到 Centos GLIBCXX 交叉编译错误

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:41 24 4
gpt4 key购买 nike

我已经搜索了很多,但没有解决这个问题,所以我想把它放在这里。

我有在 Ubuntu 上编译得很好的源代码,我想在我的 Centos 7 机器上使用它。为了这个问题,让我们假设在Centos上编译代码是完全不可能的。

每次我去运行我的应用程序时,我都会收到一条错误消息,提示“'GLIBCXX_3.4.21' not found (required by ....)”。在我的 Centos 的 libstdc++.so.6 中搜索时,我可以看到它只转到 GLIBCXX_3.4.19。

我如何使用 libstdc++.so 版本在 Ubuntu 上编译我的代码,该版本停止在 3.4.19,以便我可以轻松地在 Centos 7 上运行它?

最佳答案

您将需要使用较旧的编译器和随附的 libstdc++ 进行构建,至少与 CentOS 附带的 GCC 版本一样旧。

另一种方法是静态链接 libgcc 和 libstdc++,尽管您可能会遇到与 glibc 相同的问题,并且无法静态链接。话虽这么说,glibc 很可能会毁了这个替代方案。

要 100% 确定的唯一“正确”方法是在 CentOS 主机上编译或让 sysroot 复制其基本系统布局。

另一种更正式的替代方法是使用 [Linux LSB 编译器][1],它几乎可以为您提供与任何自尊 Linux 发行版兼容的基准。虽然我不知道这种兼容性的程度,所以我无法分享任何使用 LSB 的经验,我只知道它的存在和用途。

[1] https://wiki.linuxfoundation.org/en/Developers/LSB_Tutorial

关于c++ - Ubuntu 到 Centos GLIBCXX 交叉编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214734/

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