作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Rust 编写了一个小游戏,并使用 cargo build --release
在 Mac 上编译了一个发布版本。
我试图与使用 Ubuntu 的 friend 分享这个,但是当他尝试运行二进制文件时,他遇到了以下错误:
cannot execute binary file: Exec format error
我搜索了这个但没有找到答案。 Rust 不是声称“没有运行时”吗?它不应该能够以二进制形式在任何地方运行吗?
最佳答案
Rust 没有运行时意味着它没有很多代码作为语言的一部分运行(例如垃圾收集器或字节码解释器)。它仍然需要使用操作系统原语(即系统调用),这些在 MacOS 和 Linux 上是不同的。
你想要的是一个交叉编译器。如果您使用的是 rustup
,则 installing a cross compiler应该很简单:
# Install the toolchain to build Linux x86_64 binaries
rustup target add x86_64-unknown-linux-gnu
那么构建就是:
cargo build --release --target=x86_64-unknown-linux-gnu
警告:我没有 OS X 机器来测试它;如果有效,请发表评论或编辑以解决此问题!
关于macos - 如何从 Mac 交叉编译到 Linux?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761485/
我是一名优秀的程序员,十分优秀!