交叉编译(arm-none-eabi-as)臂组件错误“行末尾的垃圾”或未定义的符号

时间:2010-10-20 06:32:33

标签: gcc compiler-construction assembly arm cross-compiling

我正在交叉编译一个startup.s文件 (arm-none-eabi-as file.s) (*-GCC)

我在每个评论行都会遇到一些错误 - 行尾的垃圾,第一个无法识别的字符是/

当我删除//我得到的一些评论行 关于未定义符号的错误,即使我在文件的开头定义它们。

谁知道什么是错的?

2 个答案:

答案 0 :(得分:2)

(arm)汇编程序不支持//注释或定义,你必须使用.equ和@作为注释。如果你让gcc解析它,你可以把C这样的东西放到你的汇编程序中。我个人避免这样的C主义并保持汇编程序清洁。如果您不能这样做或者需要包含定义,例如让gcc在将文件发送到gas之前对其进行预处理。

答案 1 :(得分:2)

如果要使用宏或C注释,则必须使用C预处理器预处理源文件。 C预处理器删除注释并解释宏。如果源文件名以.S结尾,并且大写'S',则GNU汇编器应自动运行C预处理器。