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

求助:g++执行-c生成.o文件时提示“No such file or directory”

问题原因及解决方法

你的错误出在g++命令的参数使用上:

  • 当使用-c参数时,它的作用是只编译源文件生成目标文件,不进行链接,此时你不需要把目标文件名直接跟在-c后面——编译器会把main.o当成需要读取的输入文件,但这个文件还没生成,所以报错"No such file or directory"。

正确的命令写法有两种:

  1. 让编译器自动生成同名目标文件:
g++ main.cc -c

执行后会自动生成main.o,因为-c模式下,默认输出文件是源文件名替换后缀为.o。

  1. 显式指定输出的目标文件名(和生成可执行文件时的-o用法一致):
g++ main.cc -c -o main.o

补充一个适合你的简单Makefile示例

既然你在自学Makefile,这里给一个适配这个HelloWorld项目的Makefile,能自动处理编译和链接:

# 最终目标:生成可执行文件main
main: main.o
	g++ main.o -o main

# 生成目标文件main.o
main.o: main.cc
	g++ main.cc -c -o main.o

# 清理生成的文件
clean:
	rm -f main main.o

使用时只需要在项目目录下执行make就能生成可执行文件,执行make clean可以删除生成的文件。

内容的提问来源于stack exchange,提问作者Sébastien DA SILVA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:33:03