似乎默认情况下 Clang 假定使用 GNU 汇编器语法。
1 回答
汇编语言由汇编程序定义,该程序解析文件并从中生成机器代码。众所周知,用于 x86 的 turbo assembler、microsoft assembler、nasm 和 gnu assembler 不符合相同的语言。没有理由假设任何其他汇编程序符合其他任何人的汇编语言。你永远不应该在问题中使用这样的链接,看看如何提问,但是如果你想使用 ARM 语法,你必须使用其中一个 ARM 汇编程序,这可能会变得昂贵。如果你想要 gnu 语法,你使用 gnu 和其他一些你使用其他一些。同样,C 编译器的作者应该或经常确实希望使输入符合 C 标准,这不是由编译器定义的,而是由标准机构定义的。该编译器的输出不必符合该编译器创建的标准以外的任何标准,他们可以选择某种对象格式的机器代码,也可以像他们通常那样选择某种汇编语言,采用他们想要的任何汇编器格式。没有理由期望它们支持多个汇编器。那么你显然将工具组合成一个链,一个编译器链到一个汇编器,而这些输出链到链接器。如果特定的 llvm 工具选择或仅支持由一个汇编程序定义的一种汇编语言,则没有理由期望它们支持另一种。如果他们很好地支持其他人,也许您可以使用正确的命令行选项。llvm 工具和 gnu 一样是开源的,欢迎您随时更改您想要的任何内容以满足您的需求。他们想要的格式。没有理由期望它们支持多个汇编器。那么你显然将工具组合成一个链,一个编译器链到一个汇编器,而这些输出链到链接器。如果特定的 llvm 工具选择或仅支持由一个汇编程序定义的一种汇编语言,则没有理由期望它们支持另一种。如果他们很好地支持其他人,也许您可以使用正确的命令行选项。llvm 工具和 gnu 一样是开源的,欢迎您随时更改您想要的任何内容以满足您的需求。他们想要的格式。没有理由期望它们支持多个汇编器。那么你显然将工具组合成一个链,一个编译器链到一个汇编器,而这些输出链到链接器。如果特定的 llvm 工具选择或仅支持由一个汇编程序定义的一种汇编语言,则没有理由期望它们支持另一种。如果他们很好地支持其他人,也许您可以使用正确的命令行选项。llvm 工具和 gnu 一样是开源的,欢迎您随时更改您想要的任何内容以满足您的需求。如果特定的 llvm 工具选择或仅支持由一个汇编程序定义的一种汇编语言,则没有理由期望它们支持另一种。如果他们很好地支持其他人,也许您可以使用正确的命令行选项。llvm 工具和 gnu 一样是开源的,欢迎您随时更改您想要的任何内容以满足您的需求。如果特定的 llvm 工具选择或仅支持由一个汇编程序定义的一种汇编语言,则没有理由期望它们支持另一种。如果他们很好地支持其他人,也许您可以使用正确的命令行选项。llvm 工具和 gnu 一样是开源的,欢迎您随时更改您想要的任何内容以满足您的需求。