我正在尝试为 Cargo 指定一个自定义运行器,但它就是拒绝使用它。我尝试使用我自己的自定义目标三元组target.
,也尝试使用您在下面看到的 cfg 选项:
[target.'cfg(all(target_os = "none"))']
runner = "qemu-system-riscv64 -machine virt -kernel "
但在这两种情况下,它都说我在编译时有一个未使用的清单键:
warning: unused manifest key: target.cfg(all(target_os = "none")).runner
使用时cargo run
它总是只运行普通二进制文件而不是我的自定义运行器。
我的情况比较特殊,因为我使用文件夹config.toml
下的文件.cargo
来指定我的自定义目标三元组:
[unstable]
build-std-features = ["compiler-builtins-mem"]
build-std = ["core", "compiler_builtins"]
[build]
target = "compilation_targets/riscv-unknown-kadrix.json"
由于这是一个内核,因此它有一些特殊之处:
- 不使用标准库
- 不使用主函数,其入口点是
_start
- 使用自定义
.start
部分_start
来代替.text
- 使用自定义测试框架
不确定这些要点是否相关,但谨慎一点总比后悔好。如果您想进一步检查,代码在这里。