提问人:Vana 提问时间:10/4/2022 最后编辑:Vana 更新时间:10/11/2022 访问量:631
基于系统交叉构建的板条箱
Cross building sys based crates
问:
我尝试用他们的板条箱交叉构建一些生锈的包。
主机x86_64 (Ubuntu 22.04
),目标是 aarch64 (Alpine)-sys
因此,我使用这些启用了供应商标志的板条箱来构建它们。 我在主机上安装了 musl-tools 和 musl-dev,因为 Alpine 不使用 libc。
但是得到:
error occurred: Failed to find tool. Is `aarch64-linux-musl-gcc` installed?
我在构建应用程序之前进行了设置rustup target add aarch64-unknown-linux-musl
那么一定要装槽吗?还是我必须安装其他东西?aarch64-linux-musl-gcc
musl-tools
答:
0赞
d2718
10/4/2022
#1
我想你想要目标;我不认为是一回事。aarch64-unknown-linux-musl
aarch64-linux-musl-gcc
尝试为当前工具链安装目标:
rustup target add aarch64-unknown-linux-musl
然后针对该源进行构建:
cargo build --release --target aarch64-unknown-linux-musl
此外,如果要从 Windows 生成此目标,则从 WSL2 执行此操作几乎无疑会更容易。
进一步注意:虽然我从来没有为,但我试图为阿尔卑斯山的目标建造,但我从未让它工作过。我不知道你的应用程序是什么,但如果你即使使用正确的目标也无法构建,你可能会看看是否可以改用 rustls
。aarch64
openssl
x86_64-unknown-linux-musl
openssl
评论
0赞
Vana
10/4/2022
在构建我的应用程序之前,我已经这样做了。我的应用程序 deps 中还有 lzma-sys、zstd-sys 和 brotli-sysrustup target add aarch64-unknown-linux-musl
0赞
d2718
10/4/2022
好的,但我的观点是,您的错误消息表明您正在尝试(有意或无意)为不存在的目标构建,您应该尝试为目标构建。aarch64-unknown-linux-musl
0赞
Vana
10/4/2022
cargo 命令目标参数是所以我猜 cargo 在构建过程中修改了这个参数?aarch64-unknown-linux-musl
0赞
d2718
10/10/2022
您是否尝试过从 WSL 而不是在本机 Windows 环境中构建它?
0赞
Vana
10/10/2022
我使用 Ubuntu 22.04,而不是 Windows
下一个:使用 React 状态重定向路由
评论
aarch64-linux-musl-gcc
是目标的 C 编译器。它用于将应用程序与库(包括系统库)链接起来。所以你也需要安装它,但我不知道如何在 Windows 上做到这一点。aarch64-linux-musl