Почему моя пользовательская цель не поддерживает тип ящика `bin`?

Я использую пользовательский целевой файл, определенный в этой записи блога. Он прекрасно работает при сборке статических библиотек, однако, когда я пытаюсь создать двоичный файл вместо этого, я получаю следующее предупреждение:

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

Двоичные файлы не создаются.

Как добавить поддержку для создания исполняемых файлов для моей цели?

2 ответа

Решение

Добавление этой записи в $(target).json файл исправляет это:

"executables": true

Я согласен с Остином Б., вы столкнетесь с некоторыми проблемами при создании none цель, или любая другая цель. Вы можете проверить мои сообщения в блоге, где вы видите, как я строю для 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{}
}

где я объявляю main функция с сигнатурой C, то платформа crt.s файлы загрузят двоичный файл и вызовут main для меня.

Затем я продолжаю строить как статическую библиотеку.

Другие вопросы по тегам