我正在交叉编译一个startup.s文件 (arm-none-eabi-as file.s) (*-GCC)
我在每个评论行都会遇到一些错误
- 行尾的垃圾,第一个无法识别的字符是/
当我删除//我得到的一些评论行 关于未定义符号的错误,即使我在文件的开头定义它们。
谁知道什么是错的?答案 0 :(得分:2)
(arm)汇编程序不支持//注释或定义,你必须使用.equ和@作为注释。如果你让gcc解析它,你可以把C这样的东西放到你的汇编程序中。我个人避免这样的C主义并保持汇编程序清洁。如果您不能这样做或者需要包含定义,例如让gcc在将文件发送到gas之前对其进行预处理。
答案 1 :(得分:2)
如果要使用宏或C注释,则必须使用C预处理器预处理源文件。 C预处理器删除注释并解释宏。如果源文件名以.S
结尾,并且大写'S',则GNU汇编器应自动运行C预处理器。