我是靠谱客的博主 精明草丛,最近开发中收集的这篇文章主要介绍【C语言】GNU中汇编文件.s与.S的差异GNU中汇编文件.s与.S的差异,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。


博客内容主要围绕:
       5G/6G协议讲解
       算力网络讲解(云计算,边缘计算,端计算)
       高级C语言讲解
       Rust语言讲解

文章目录

  • GNU中汇编文件.s与.S的差异
    • 问题出在文件名上

GNU中汇编文件.s与.S的差异

今天下午学习ARM64汇编时,写了一段汇编程序,使用gcc编译总是说我没有定义 MY_LABEL,

在这里插入图片描述
问题代码如下,

#define MY_LABEL 0x20

.section .data

.section .text
.globl main
main:
        ldr x7,=MY_LABEL
        ret

问题出在文件名上

下面是GNU手册中的描述,

file.s Assembler code.

file.S
file.sx Assembler code that must be preprocessed.

问题找到了,因为我的文件名是 .s后缀 ,所以GNU编译器不会对汇编文件中的 #include、#if、#elif、#else、#endif、#define这些预处理指令做解析

将文件名换成 .S后缀或者 .sx后缀,问题解决了,编译成功。



这里是从善若水的博客,感谢您的阅读????????????


在这里插入图片描述


最后

以上就是精明草丛为你收集整理的【C语言】GNU中汇编文件.s与.S的差异GNU中汇编文件.s与.S的差异的全部内容,希望文章能够帮你解决【C语言】GNU中汇编文件.s与.S的差异GNU中汇编文件.s与.S的差异所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部