为什么我的自定义目标不支持 `bin` crate 类型?

Why does my custom target not support the `bin` crate type?

我正在使用 this 博客 post 中定义的自定义目标文件。它在构建静态库时工作得很好,但是当我尝试构建二进制文件时,我收到以下警告:

warning: dropping unsupported crate type `bin` for target `x86_64-unknown-none-gnu`

没有构建二进制文件。

如何为我的目标添加构建可执行文件的支持?

我同意 Austin B 的观点,在为 none 目标或任何自定义目标构建时,您将 运行 遇到一些问题。你可以查看我的blog posts,在那里你看到我在为 gba 建造。

我一直在做的是

#[no_mangle]
pub extern "C" fn main(_: i32, _: *const *const i8) -> i32 {
    let mut m = gfx::Mode3::new();
    m.dot(120, 80, Color::rgb15(31, 0, 0));
    m.dot(136, 80, Color::rgb15(0, 31, 0));
    m.dot(120, 96, Color::rgb15(0, 0, 31));

    loop{}
}

我在这里声明了一个带有 C 签名的 main 函数,然后平台特定的 crt.s 文件将加载二进制文件并为我调用 main。

那我继续构建成静态库

将此条目添加到 $(target).json 文件可以修复它:

"executables": true