如何解决Cargo 无法使用 Darwin Target 编译 hyper
我编写了一个 CLI,并尝试在基于 rust:1.53-slim
映像的 Docker 映像中为这些目标构建它:
x86_64-unknown-linux-gnu
x86_64-apple-darwin
x86_64-pc-windows-gnu
Linux 和 Windows 目标正在正确构建,但是当我尝试为 Darwin 目标进行交叉编译时,hyper
板条箱由于以下错误而继续无法编译:
$ cargo build --locked --release --target x86_64-apple-darwin
# ...
# OMITTED COMPILE OUTPUTS
# ...
= note: cc: error: x86_64: No such file or directory
cc: error: unrecognized command line option '-arch'; did you mean '-march='?
error: aborting due to previous error
error: could not compile `hyper`
我已经在互联网上寻找线索或解决方案,但找不到任何有用的东西。有没有人经历过或解决过这个问题?任何指导都会很棒!
编辑:
是否需要通过 apt-get
安装 GCC 链接器才能正确编译 darwin?
解决方法
交叉编译仍然需要一个支持所请求目标的本地链接器(反过来需要系统库)。
您可能在使用 osxcross 或 crossbuild 并使用 .cargo/config.toml 中的特定于目标的部分覆盖链接器(andc 编译器)方面有一些运气,例如:
[target.x86_64-apple-darwin]
linker = "linker-path-here"
和/或将 CC
环境变量设置为正确的交叉编译器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。