Через пару часов я скомпилировал код.
Решением было (как предложил Майкл Петч) скомпилировать код сборки в статические .o
файлы, а затем скомпилировать код ржавчины с использованием xargo
и пользовательской цели. Я скомпилировал код Rust в виде статической библиотеки, а не двоичного файла, поэтому на выходе был объектный файл .a
, а не исполняемый файл.
Затем я использовал gcc
со скриптом компоновщика, чтобы связать вместе объектные файлы и вывести результат в виде файла ELF. После этого я использовал objcopy
to с флагом -O binary
, чтобы скопировать файл ELF в файл .bin. И наконец, я использовал dd
для создания файла образа, с которого я мог бы загрузиться.