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

C++编译出现undefined reference to `main'错误,请求排查原因

解决"undefined reference to `main'"的编译错误

嘿,我一眼就看到问题出在你的链接命令上了!先看你执行的第二条命令:

g++ -WALL -o main.o fraction.o

这里的核心错误是对-o选项的用法搞错了:-o后面应该指定最终生成的可执行文件名称,而不是目标文件。你现在的命令相当于让编译器只把fraction.o单独打包成一个叫main.o的程序,但fraction.o里只有分数类的实现,根本没有main()函数(这个函数在你已经编译好的main.o里),链接器找不到程序的入口点,自然就报了undefined reference to main的错误。

正确的操作步骤

你第一步的编译命令是对的:

g++ -c main.cpp fraction.cpp

这行命令已经把两个源文件分别编译成了main.o和fraction.o两个目标文件。接下来只需要把它们链接起来生成可执行文件,正确的链接命令应该是:

g++ -Wall main.o fraction.o -o main

或者你也可以把编译和链接合并成一条命令,更简单:

g++ -Wall main.cpp fraction.cpp -o main

小细节提醒

  • 注意警告选项的拼写:是-Wall(小写的L),不是-WALL,大写的话编译器可能会提示未知选项哦。
  • 既然你确认教授提供的main.cpp没问题,那修正命令后应该就能顺利编译运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 16:02:31