首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用旧的libc运行C++11库

使用旧的libc运行C++11库
EN

Unix & Linux用户
提问于 2016-06-23 10:33:58
回答 2查看 1.5K关注 0票数 0

我用C++11特性编写了一个共享库,用gcc 4.8,libc 2.18编译,它需要在客户端的CentOS 6机器上运行,后者有gcc 4.4.7,libc 2.12。这个库中有一些符号在libc 2.12中是找不到的,所以我如何在CentOS 6上使用这个库。在如何、在哪里、哪台机器可以编译库方面,我有灵活性,但最终它应该可以在客户端CentOS 6上使用,因为在客户端不能访问包。在CentOS 6上用DevTools-2编译它可以吗?或者有任何与ABI相关的问题。如果还有其他建议,请告诉我。提前谢谢。

EN

回答 2

Unix & Linux用户

发布于 2019-08-26 02:41:23

在与运行系统相同的系统上编译。您可能需要重新编译发行版的版本跳转(例如,7-8版本),有时还需要重新编译berween版本。

如果您使用不同的编译器版本,您可能会遇到编译器的共享助手库、基C或C++库(很可能是)或各种外部依赖项之间的不兼容。不是一塌糊涂,我想调试一下。

票数 1
EN

Unix & Linux用户

发布于 2016-06-23 12:44:29

C++11特性,用gcc 4.8编写

?为什么不使用g++ 4.8呢?

建议:用libstdc++.a→静态编译库--我认为C++11函数在*libstdc++-devel中,而不是glibc中。

devtoolset-2-libstdc++-devel-4.8.2附带了静态库:

/opt/rh/devtoolset-2/root/usr/lib/gcc/x86_64-redhat-linux/4.8.2/{ libstdc++.a, libstdc++_nonshared.a }

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/291599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档