首页 > 解决方案 > 如何在 Fedora 上为 openwrt 编译和运行二进制文件?

问题描述

我使用gcc myprogram.c -o myprogram -Wall -Werror在 fedora 中编译一个程序,然后将二进制文件加载myprogram到我使用 qemu 运行的 openwrt 映像的存储中。然后在 openwrt 图像中,我尝试使用运行二进制文件./myprogram,我得到了/bin/ash: ./myprogram: not found.如何解决这个问题?

标签: compilationcross-compilingfedoraopenwrt

解决方案


您需要使用工具链来使用映像中的相同库进行编译(或者如果可能的话在 QEMU 中编译它)。即使 QEMUx86_64像我怀疑的那样在您的主机上运行,​​您也应该使用工具链(例如,您的主机和 OpenWRT 可以使用不同的 libc / musl 版本 - OpenWRT 主要带有 musl 库)

请参考此URL 在这里您将找到最新稳定 OpenWRT 映像 [19.07.1] 的工具链。


推荐阅读