Файл не создается, потому что у вас включен -Werror
. Предупреждения о неиспользуемых переменных считаются ошибками, поэтому компиляция прерывается. Просто закомментируйте их на данный момент:
void _main( struct multiboot_data* mbd, unsigned int /* magic */ )
{
// char * boot_loader_name =(char*) ((long*)mbd)[16];
// ...
}
И это должно хорошо работать. Кроме того, не должен ли _main()
быть объявлен просто как main()
, а затем разрешено быть "искаженным" в _main()
компилятором? Редактировать: Возможно, вы также захотите использовать -c
, чтобы пропустить этап связывания, при условии, что вам просто нужны объектные файлы.