linux - 我们如何为 riscv-linux 交叉编译静态链接的 rust 程序?
问题描述
我发现目标 riscv64gc-unknown-linux-musl 可能会有所帮助。当我尝试添加目标时,我被告知
工具链“nightly-x86_64-unknown-linux-gnu”不包含目标“riscv64gc-unknown-linux-musl”的组件“rust-std”
help: 考虑
cargo build -Z build-std
改用
所以我运行了这个命令,“cargo build -Z build-std --target riscv64gc-unknown-linux-musl”,但是得到了很多编译错误:
error[E0412]: cannot find type `c_char` in the crate root
--> /home/simon/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/libc-0.2.93/src/unix/mod.rs:45:29
|
6 | pub type c_schar = i8;
| ---------------------- similarly named type alias `c_schar` defined here
...
45 | pub gr_name: *mut ::c_char,
| ^^^^^^ help: a type alias with a similar name exists: `c_schar`
>error[E0412]: cannot find type `c_char` in the crate root
--> /home/simon/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/libc-0.2.93/src/unix/mod.rs:46:31
|
6 | pub type c_schar = i8;
| ---------------------- similarly named type alias `c_schar` defined here
...
46 | pub gr_passwd: *mut ::c_char,
| ^^^^^^ help: a type alias with a similar name exists: `c_schar`
error: aborting due to 679 previous errors
部分错误有详细解释:E0412、E0425、E0573。有关错误的更多信息,请尝试
rustc --explain E0412
.error: could not compile `libc`
我如何理解 build-std 的细节并使其工作?通过阅读 cargo 和 rust 的源代码?
解决方案
推荐阅读
- angular - RXJS 管道中未触发 tap()
- jetbrains-ide - 搜索所有文件
- php - SQL: 在 laravel 中更改表 `familymembers` 添加约束 `familymembers_user_id_foreign` 外键 (`user_id`) 引用 `all_users` (`id`)
- azure-devops - 如何重新组织 TFVC 中的文件夹
- python - Python 未在 for 循环中的第二个文件中读取\写入
- c# - 在 ASP.net Core 中将对象实例化为服务
- javascript - 删除单击 JS 上的事件侦听器
- java - 使用 java 所有者 aeonbits 进行测试
- javascript - 如果页面不活动,为什么过渡不开始
- ios - 如何立即将 tintColor 应用于 iOS 导航返回按钮文本