栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】GNU中汇编文件.s与.S的差异

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】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后缀,问题解决了,编译成功。



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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号