当前位置: 首页 > 知识库问答 >
问题:

如何用Clang用ARM语法编译ARM汇编?

傅胡媚
2023-03-14

似乎默认情况下,Clang采用了GNU汇编程序语法。

如何用Clang编译一个汇编文件使用ARM语法像this(指令)和this(指令)?

共有1个答案

周鸿运
2023-03-14

汇编语言是由汇编程序定义的,汇编程序解析文件并从中生成机器代码。众所周知,面向x86的turbo汇编程序、microsoft汇编程序、nasm汇编程序和gnu汇编程序不符合同一种语言。没有理由假设任何其他汇编程序符合任何其他人的汇编语言。你不应该在问题中使用这样的链接,但是如果你想使用ARM语法,你必须使用ARM汇编器,这会很贵。如果你想要gnu语法,你用gnu,其他的你用其他的。同样,C编译器的作者应该或者经常希望输入符合C标准,这不是由编译器定义的,而是由标准团体定义的。该编译器的输出不需要符合任何标准,除了由该编译器创建的标准,他们可以选择某种目标格式的机器码,或者他们可以选择某种汇编语言,以他们想要的汇编语言格式。没有理由期望它们支持多个汇编器。显然,你可以将工具组合成一个链,编译器链接到汇编器,而那些输出链接到链接器。如果一个特定的llvm工具选择或者只支持一个汇编器定义的一种汇编语言,那么就没有理由期望它们支持其他语言。如果他们很好地支持其他人,也许你可以使用正确的命令行选项。llvm工具和gnu一样都是开源的,欢迎您随时根据自己的需要进行修改。

 类似资料:
  • 我正在尝试为Android ARM交叉编译llvm/clang。 我也尝试了这里列出的所有步骤,以及在这里找到的指南,但没有运气。 任何帮助都将不胜感激。谢了! 编辑:现在我正在使用以下命令: 错误消息:CLANG36++:警告:编译过程中未使用参数:'-bundle'/users/paschalis/androide/toolchains/gcc/bin/../lib/gcc/arm-linux

  • 本文档说明如何在kali linux上配置ARM交叉编译环境,是我们多份关于”定制ARM镜像”的文档的起点. 开发机的配置 编译内核生成镜象通常需要大量硬盘空间.确保你的开发机至少有50G可用硬盘空间以及足够的内存,CPU不要太差. 安装依赖 先安装ARM交叉编译所需的依赖. apt-get install git-core gnupg flex bison gperf libesd0-dev b

  • 本文向大家介绍GNU ARM汇编语法原理及操作解析,包括了GNU ARM汇编语法原理及操作解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了GNU ARM汇编语法原理及操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 ARM汇编源程序有两种风格: ARM官方推荐的风格,所有的指令都大写。常用在windows下的IDE中。 GN

  • 我试图交叉编译一个linux系统的简单hello world程序。 我有以下资料: null 我试图运行/lib/libc.so.0来获取版本信息,但出现了一个分段错误。它似乎用-static编译解决了这个问题。所以我想这是libc库的问题。谢谢你的帮助。

  • 问题内容: arm-eabi,gnueabi和gnueabi-hf交叉编译器有什么区别?我发现很难选择编译器。是否有用于arm的本地编译器? 问题答案: 我不确定: eabi代表将在裸机手臂内核上运行的代码的编译。 gnueabi代表linux的代码编译 对于gnueabi / gnueabi-hf部分,我在这里找到了答案。 gcc-arm-linux-gnueabi是用于armel体系结构的跨工

  • 我正在使用下面的gcc工具链。gcc版本5.4.1 20160919(发布)[ARM/embedded-5-branch修订版240496](适用于ARM嵌入式处理器的GNU工具) 我可以创建。h.gch文件,但无法获取。h.gch在构建. c文件时使用。我使用-H和-Wulult-pch选项来检查原因,但编译器没有给出任何信息。就像。h.gch不存在,总是搜索。h文件。