You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCC中是否有.s汇编文件的替代扩展名?区分手写与自动生成文件

解决GCC混合编译C与自定义扩展名汇编文件的问题

场景说明

我通过自定义编译器生成.s格式的汇编文件作为中间产物,需要和C源码一起用GCC完成编译。为了在make clean时只清理自动生成的.s文件,同时保留手写的汇编代码,我打算把手写汇编改用.asm扩展名,但直接编译.asm文件时遇到了报错。

编译报错

直接执行编译命令时,链接器无法识别.asm文件格式,报错如下:

$ gcc test.asm -o test
/usr/bin/ld:test.asm: file format not recognized; treating as linker script
/usr/bin/ld:test.asm:1: syntax error
collect2: error: ld returned 1 exit status

可行方案

使用GCC的-x选项显式指定文件类型为汇编,就能正常混合编译C文件和.asm汇编文件了,命令如下:

gcc test1.c -x assembler test.asm -o test

这里的-x assembler会告诉GCC,把后续的test.asm当作汇编源码处理,避免链接器误判文件格式。

内容的提问来源于stack exchange,提问作者Scott Franco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:52:10