【问题标题】:cross-compiling x264 for ARM为 ARM 交叉编译 x264
【发布时间】:2016-08-24 16:46:58
【问题描述】:

我是交叉编译新手,刚开始在我的 linux 机器 (amd64) 上使用 ARMv5(linux 内核 2.6.31.8)为主机 (NAS) 交叉编译包。我安装了 crosstool-ng 并用它创建了用于 ARM 编译的工具链。根据网上的一些教程,我成功编译了 x264 包。但是现在当我尝试运行它时,我收到了以下错误消息

./x264: /lib/libm.so.6: version 'GLIBC_2.15' not found (required by ./x264)

好的,现在我知道我需要 libm 库,但它是什么以及如何用它编译 x264?

【问题讨论】:

    标签: linux arm cross-compiling


    【解决方案1】:

    从错误信息中:你构建的x264版本需要glibc 2.15版本。 Glibc 是作为交叉编译工具链的一部分构建的(通过 crosstool-ng)。

    您需要使用在您的 NAS 根文件系统(或兼容)上找到的相同版本的 glibc 构建一个新工具链。

    (在@NotLikeThat 评论后编辑)

    【讨论】:

    • 我想你可能误读了这个问题;这是来自动态加载程序的运行时错误,而不是构建错误。 OP 已经从跨工具链中针对 glibc 2.15(或更高版本)构建了 x264,这就是问题,因为显然没有足够新的版本可用目标系统。
    • 现在我明白了,它是非常古老的 linux 系统,并且有 glibc v2.8。我将不得不用这个 glibc 构建新的工具链。我们将拭目以待。
    • @Notlikethat you are correct 我被问题误导了,错误确实是在运行时引起的。
    • @sbrbot 一个可能更简单的替代方案是配置(或破解)x264 构建过程以添加指向真实目标文件系统副本的--sysroot 选项,而不是重建整个工具链为了改变它自己的默认sysroot。