似乎默认情况下Clang采用GNU汇编语法。
如何使用ARM语法将this (directives)和this (instructions)与Clang组装成文件进行编译?
答案 0 :(得分:0)
汇编语言由汇编程序定义,该程序解析文件并从中生成机器代码。我们都知道turbo汇编程序,x86的microsoft汇编程序,nasm和gnu汇编程序不符合相同的语言。没有理由假设任何其他汇编程序符合任何其他汇编语言。你永远不应该在问题中使用这样的链接,看看如何提问,但如果你想使用ARM语法,你必须使用一个ARM汇编程序,这可能会变得昂贵。如果你想要gnu语法你使用gnu和其他一些你使用其他一些。同样,C编译器的作者应该或经常希望将输入符合C标准,而C标准不是由编译器定义的,而是由标准体定义的。该编译器的输出不必符合该编译器创建的标准之外的任何标准,他们可以选择某种对象格式的机器代码,也可以选择某种汇编语言,无论他们想要什么样的汇编程序格式。没理由期望它们支持多个汇编程序。那么你显然将工具组合成一个链,一个编译器链到一个汇编器,那些输出链到链接器。如果特定的llvm工具选择或仅支持一个汇编程序定义的汇编语言,则没有理由期望它们支持其他汇编语言。如果他们支持其他人,也许你可以使用正确的命令行选项。像gnu这样的llvm工具是开源的,欢迎您随时更改任何您想要的东西。