【问题标题】:buildrpm fails when cross building交叉构建时 buildrpm 失败
【发布时间】:2015-02-04 20:56:23
【问题描述】:

我成功为 Raspberry Pi(ARM 架构)编译了 c++ 代码。

此类二进制文件有一个文件命令返回以下内容:

usr/local/company/product/this:ELF 32 位 LSB 可执行文件,ARM,EABI5 版本 1 (SYSV),动态链接(使用共享库),适用于 GNU/Linux 2.6.26,BuildID[sha1]= 9fe73c254b317e239758e4445d12b8441a3cb13e,未剥离

我现在希望生成 RPM 包(不是 .deb 包,真正的 .RPM 包!)。 我尝试了许多 --target 和 spec 的文件 buildarch 组合,但没有取得多大成功。 试过 armv7l、arm-linux-gnueabihf、arm-linux ...

rpmbuild 返回相同的结果:

构建目标平台:arm-unknown-linux 为目标 arm-unknown-linux 构建 错误:没有找到兼容的构建架构

我正在从 x86_64 Ubuntu 编译。目标架构是 arm-linux-gnueabihf。

我调用 rpmbuild 如下: rpmbuild -bb --target armv7l myfile.spec

谢谢

【问题讨论】:

    标签: arm raspberry-pi cpu-architecture rpmbuild


    【解决方案1】:

    在我的 RHEL 7 计算机上,/usr/lib/rpm/rpmrc 包含几个 ARM 变体: armv3larmv4barmv4larmv4tlarmv5telarmv5tejlarmv6larmv7larmv7hlarmv7hnl。我猜你的文件会有类似的选择,因此包括你选择的armv7l 选项。

    我发现对于交叉打包,运行rpmbuild --target _target_ 是不够的。我还必须在构建命令周围使用setarch _target_ 包装器。

    【讨论】:

      【解决方案2】:

      您可能需要将您的 arm 架构(由 uname -m 显示)添加到 /usr/lib/rpm/rpmrc 配置中。

      【讨论】:

        猜你喜欢
        • 2011-09-03
        • 2016-04-17
        • 1970-01-01
        • 2015-08-09
        • 2018-08-05
        • 2013-10-09
        • 1970-01-01
        • 2018-08-08
        • 1970-01-01
        相关资源
        最近更新 更多