【发布时间】:2014-11-27 15:44:18
【问题描述】:
注意:我是一名 C# Windows 开发人员,刚刚进入 C++/Linux 世界。
我有一个基于 BOOST 的跨平台 C++ 代码,我需要将其编译为共享库:
- 视窗
- RHEL6
- RHEL5 和
- 索拉里斯
我有 Windows 和 RHEL6 机器并且已经成功地为它们构建。 Solaris 构建当前并不重要。
据此: Can I use a shared library compiled on Ubuntu on a Redhat Linux machine?
我的 RHEL6 编译共享库无法在 RHEL5 上运行,因为以下命令:
readelf -s /path/to/your/library.so | egrep 'GLIBC_2.([6-9]|10)'
返回 GLIBC2.7 依赖:
143: 00000000 0 FUNC 全局默认值和 eventfd@GLIBC_2.7 (14)
9069: 00000000 0 FUNC 全局默认设置 eventfd@@GLIBC_2.7
我想知道是否有一种方法可以通过 RHEL6 机器为 RHEL5 构建? 或者任何其他提案都可以。谢谢。
【问题讨论】:
-
您从该命令得到的答案是 如果输出非空,则该库将无法在 RHEL-5 上运行。
-
尝试在 chroot 目录中引导 rhel5,并从那里构建。
-
快速谷歌搜索得到了这个:github.com/bbockelm/RHEL5-chroot,这似乎是为此目的而设计的。
-
对不起,我的意思是设置,而不是引导程序。
-
@ElliottFrisch 是的,这是提出这个问题的主要动机。