首页 > 解决方案 > C++ 中的编译错误:未定义对“main”collect2 的引用:错误:ld 返回 1 个退出状态

问题描述

我在 Linux 终端中运行的命令是:

g++ -c main.cpp fraction.cpp ; g++ -WALL -o main.o fraction.o 

返回的完整输出是:

/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-   
gnu/Scrt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status

main.cpp是我的教授写的,他正在检查我们的分数类,所以主要不应该有错误。

标签: c++classcompiler-errors

解决方案


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

此命令指示您的编译器链接fraction.o并创建一个名为main.o. 当然,除了那main.o是编译的结果main.cpp

您明显的意图是将两者 main.o链接到fraction.o一个新的可执行文件中。-o您需要使用该选项指定要创建的可执行文件的名称,然后才列出您的两个目标文件。

但是,当然,您可能main.cpp首先需要重新编译。


推荐阅读