交叉编译(arm-none-eabi-as)arm汇编错误“junk at end of line /”或未定义的符号
你好,当我交叉编译一个startup.s文件时 (arm-none-eabi-as file.s) (*-gcc)
我在每个注释行中都遇到一些错误 - 行尾有垃圾,
当我删除 // 一些注释行时, 第一个无法识别的字符是 /
有关未定义符号的错误,即使我在文件开头定义了它们。
有人知道出了什么问题吗?
Hi while i cross compile an startup.s file
(arm-none-eabi-as file.s)
(*-gcc)
I am getting in each commentary line some errors
- junk at end of line, first unrecognized character is /
when i delete the // some comment lines i get
errors about undefined symbols even i defined them at beginning of the file.
anyone know whats wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果要使用宏或 C 注释,则必须使用 C 预处理器预处理源文件。 C 预处理器删除注释并解释宏。如果源文件名以
.S
结尾,并带有大写“S”,则 GNU 汇编器应自动运行 C 预处理器。If you want to use macros or C comments, then you have to preprocess the source file with the C preprocessor. The C preprocessor removes comments and interprets macros. The GNU assembler should run the C preprocessor automatically if the source file name ends with
.S
, with an uppercase 'S'.(arm) 汇编器不支持 // 注释或定义,您必须使用 .equ 和 @ 进行注释。如果你让 gcc 解析它,你可以将类似的 C 主义放入你的汇编器中。就我个人而言,我会避免此类 C 主义并保持汇编程序的干净。如果您不能这样做或需要包含定义,例如让 gcc 在将文件发送到 Gas 之前对其进行预处理。
(arm) Assembler does not support // comments or defines, you have to use .equ and @ for comments. If you let gcc parse it you can put C isms like that into your assembler. Personally I avoid such C isms and keep the assembler clean. if you cannot do that or need includes with defines for example let gcc pre-process the file before sending it to gas.