cross-compiling - 在 Centos 7 上交叉编译 Centos 6 系统

标签 cross-compiling centos7 centos6 glibc

我正在构建一个二进制文件 FOO在 Centos 7 上(使用 glibc 2.14 ),我希望它在 Centos 6 上运行(只有 glibc 2.12 )

如果我安装glibc 2.14在 Centos 6 系统上并行:

https://unix.stackexchange.com/questions/176489/how-to-update-glibc-to-2-14-in-centos-6-5#299665

那么我需要做什么才能运行FOO并使用glibc 2.14 .so 库?

是否设置LD_LIBRARY_PATH帮忙?

最佳答案

最简单的方法可能是从 EPEL 安装 mock 并在 CentOS 6 chroot 中构建。这假设您已经将软件打包为 RPM 包。

理论上可以将 glibc RPM 解压到一个新的目录树(不是 /)中,并以使用这些文件而不是系统 glibc 的方式运行编译器和链接器。然而,我不认为 CentOS 7 工具链是用 sysroot 支持构建的,所以这有点棘手。您可以从源代码构建 glibc 并查看它使用的编译器和链接器调用,因为它有同样的问题(像 localedef 这样的程序需要针对刚刚构建的 glibc 进行编译,而不是已经安装的程序)。

关于cross-compiling - 在 Centos 7 上交叉编译 Centos 6 系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45123251/

相关文章:

java - x86 P6 上下文中的字节寄存器是什么?

c++ - 当我使用线程时,Breakpad 无法在目标上创建小型转储

centos7 - Cntlmd 在 Centos 7.1 上的 systemd 下无法启动

java - Linux 重启后 Tomcat 中的 HyperSQL 数据库被删除

linux - 如何在 Centos 6.5 上安装 Samba

c++ - cmake:CMAKE_REQUIRED_FLAGS 和以 "/D"开头的标志

c++ - 基于 libzbar 的 Qt 应用程序的构建问题

ffmpeg - 在 Centos 7 中安装 ffmpeg

mysql - 在 Google Compute Engine 上的 CentOS 6.6 上安装 MySQL 的正确方法是什么?

linux - 运行远程脚本的意外行为