如何解决交叉编译的二进制文件未在RPI上运行,我可以正确编译吗?
我正在尝试为RPI交叉编译一个小型rust应用程序。我正在交叉编译,因为直接在PI上进行编译花费的时间太长,并且达到75C。
我遵循了各种指示,但是最终我要做的是:
- 使用rustup安装“ armv7-unknown-linux-gnueabihf”目标
- 从此处下载rpi工具:https://github.com/raspberrypi/tools
- 将“ tools / arm-bcm2708 / arm-linux-gnueabihf / bin /”文件夹添加到PATH
- 添加“ .cargo / config”文件:
[target.armv7-unknown-linux-gnueabihf] linker = "arm-linux-gnueabihf-gcc"
- 运行“货物构建--target armv7-unknown-linux-gnueabihf --release”
- 将文件发送到RPI
- chmod + x the_file
- 执行“ ./the_file”
我得到bash: ./the_file: No such file or directory
是的,我确实在正确的目录中。
这是“文件”的输出:
ELF 32位LSB共享对象,ARM,EABI5版本1(SYSV)动态 链接,对于GNU / Linux 2.6.32的解释器/lib/ld-linux-armhf.so.3, 使用debug_info,不剥离
我对这类东西还没有足够的经验来确定我生成的二进制文件是否适合在RPI3 B上运行。
我是否生成了正确的二进制“类型”?
P.S。我正在PI上运行DietPi发行版。如果相关的话,它是基于debian的。
解决方法
所以我通过作弊解决了这个问题。我发现https://github.com/rust-embedded/cross花费了大约30秒的时间,现在我可以交叉编译几乎所有东西了。我强烈推荐它!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。