кросс-компиляция (arm-none-eabi-as) ошибка сборки руки мусор в конце строки / или неопределенный символ

Привет, пока я компилирую файл startup.s (arm-none-eabi-as file.s) (*-gcc)

Я получаю в каждой строке комментариев некоторые ошибки - мусор в конце строки, первый нераспознанный символ - /

когда я удаляю // некоторые строки комментариев, я получаю ошибки о неопределенных символах, даже если я определил их в начале файла.

кто-нибудь знает, что не так?


person Gobliins    schedule 20.10.2010    source источник
comment
#define I_BIT 0x80 ... msr CPSR_c, #ARM_MODE_IRQ | I_BIT | F_BIT   -  person Gobliins    schedule 20.10.2010
comment
Вы не можете использовать заголовки C в сборке.   -  person starblue    schedule 21.10.2010


Ответы (2)


(рука) Ассемблер не поддерживает // комментарии или определения, вы должны использовать .equ и @ для комментариев. Если вы позволите gcc разобрать его, вы можете поместить подобные C-измы в свой ассемблер. Лично я избегаю таких C-измов и держу ассемблер в чистоте. если вы не можете этого сделать или нуждаетесь в включениях с определениями, например, позвольте gcc предварительно обработать файл перед отправкой его в газ.

person old_timer    schedule 20.10.2010

Если вы хотите использовать макросы или комментарии C, вам необходимо предварительно обработать исходный файл с помощью препроцессора C. Препроцессор C удаляет комментарии и интерпретирует макросы. Ассемблер GNU должен автоматически запускать препроцессор C, если имя исходного файла заканчивается на .S с заглавной буквой 'S'.

person Thomas Pornin    schedule 27.10.2010