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

Ubuntu下gcc编译报错:输入输出文件相同,求原因及解决方法

解决gcc编译错误:input file与output file同名问题

错误原因

你执行的gcc编译命令中,输入源文件名和指定的输出可执行文件名完全相同。gcc会阻止这种操作:编译过程需要生成临时文件并写入输出内容,同名会引发文件读写冲突,甚至直接覆盖你的源文件。

比如你可能执行了类似这样的错误命令:

gcc expthread -o expthread

这里输入文件是expthread,输出文件也指定为expthread,触发了gcc的同名检测机制。

修复步骤

根据你的实际场景选择对应方法:

场景1:源文件未加后缀(比如直接命名为expthread)

C语言源文件通常需要.c后缀来让gcc识别为C代码,同时避免和输出可执行文件重名:

  1. 重命名源文件:
mv expthread expthread.c
  1. 执行正确的编译命令(输入为expthread.c,输出为expthread,二者不同):
gcc expthread.c -o expthread

场景2:已使用正确后缀但错误指定了输出名

如果你的源文件是expthread.c,但不小心写成了gcc expthread.c -o expthread.c这类命令,只需修改输出文件名即可:

  • 指定不同的输出名:
gcc expthread.c -o expthread_out
  • 或使用默认输出(gcc默认生成名为a.out的可执行文件):
gcc expthread.c

额外提醒

如果错误命令已经导致源文件内容损坏,先检查expthread或expthread.c的内容是否完整,必要时重新编写代码。

内容的提问来源于stack exchange,提问作者이건웅

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:50:56