2016-01-12 1 views
3

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

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

не построены Нет бинарники.

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

+2

Я не буду отправлять это как ответ, потому что я не уверен, если это правильно, но не потому что она не делает смысл создавать исполняемый файл для платформы 'none'? На этом уровне нет операционной системы для загрузки исполняемого файла в память и перехода к его точке входа. –

+0

Я попытался установить ключ «os» на «foo», «целевой» ключ на «x86_64-unknown-foo», а имя целевого файла - «x86_64-unknown-foo.json». Без изменений. –

+1

Какую цель ставите перед собой? Вы пытаетесь запустить ОС, написанную в Rust? –

ответ

1

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

"executables": true 
0

Я согласен с 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{} 
} 

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

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

Смежные вопросы