compilation - 如何在 Fedora 上为 openwrt 编译和运行二进制文件?
问题描述
我使用gcc myprogram.c -o myprogram -Wall -Werror
在 fedora 中编译一个程序,然后将二进制文件加载myprogram
到我使用 qemu 运行的 openwrt 映像的存储中。然后在 openwrt 图像中,我尝试使用运行二进制文件./myprogram
,我得到了/bin/ash: ./myprogram: not found.
如何解决这个问题?
解决方案
您需要使用工具链来使用映像中的相同库进行编译(或者如果可能的话在 QEMU 中编译它)。即使 QEMUx86_64
像我怀疑的那样在您的主机上运行,您也应该使用工具链(例如,您的主机和 OpenWRT 可以使用不同的 libc / musl 版本 - OpenWRT 主要带有 musl 库)
请参考此URL 在这里您将找到最新稳定 OpenWRT 映像 [19.07.1] 的工具链。
推荐阅读
- spring - weblogic 12c上的Spring @Autowired null问题
- c# - 使用实体框架插入数据库时将导航 Id 属性自动填充到子类
- pytorch - 我正在尝试以不同的方式安装英特尔优化的 pytorch
- java - Java Spring Boot - 未经授权,邮递员
- android - 如何使用导航组件保留最后打开的片段
- javascript - MermaidJS 样式在 Chrome Mobile 中显得很奇怪
- javascript - 自动填充 HTML 选择列表
- c# - 错误 CS1061:“Button.ButtonClickedEvent”不包含“SetListener”的定义
- sql - 2 个数据库之间的简单 SELECT 查询未返回任何结果 - 继续显示“正在执行查询”
- javascript - HTML 中的“href”值可在 Android 上打开 gmail 应用程序