编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态

Compiling problem : In function `_start': undefined reference to `main' collect2: error: ld returned 1 exit status

本文关键字:ld 错误 collect2 引用 返回 退出 状态 函数 问题 start 编译      更新时间:2023-10-16

我收到以下错误:

/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/crt1.o: In function_start': /build/glibc-6V9RKT/glibc-2.19/csu/../sysdeps/x86_64/start.S:118: undefined reference tomain' collect2:错误:ld 返回 1 个退出状态

使用的 G++:

g++ -Wall main.cpp plzsucheclass1.cpp -o listentest

这是我的主要.cpp :

#include <iostream>
#include "plzsucheclass.hpp"
using namespace std;
int main() {
int eingabe;
cout << "Wollen Sie die Suchfunktion fuer PLZ/Ort oder die Entfernung zwischen zwei Gebieten berechnen? " << 'n';
cout << 'n' << "Geben Sie 0 fuer Suchen und 1 fuer Berechnen ein ! " << 'n';
cout << 'n' << "Geben Sie 2, um das Programm zu beenden, ein !" << 'n' << 'n';
cin >> eingabe;
LesenSchreiben l;
SuchenBerechnen sb;
switch (eingabe) {
case 0:
l.datei_bdlEinlesen();
sb.plzortSuchen(l);
break;
case 1:
l.datei_laebrEinlesen();
sb.sucheEntfernung(l);
break;
case 2:
exit(0);
default:
cerr << 'n' << "Keine korrekte Auswahl getroffen, bitte erneut versuchen !!!" << 'n';
}
return 0;
}

如果你能帮我解决这个问题,那就太好了。 提前谢谢。

创建一个简单的main()函数和空plzsucheclass1.cpp后,我无法重现您的错误:

$ cat >> main.cpp
int main() {
return 0;
}
$ cat >> plzsucheclass1.cpp
$ g++ -Wall main.cpp plzsucheclass1.cpp -o listentest
$ ./listentest 
$ ./listentest && echo "Success"
Success

我怀疑您的构建命令与您在此处发布的不完全一样。

我在制作第一个C++程序时遇到了这个问题,这是因为我在编译之前没有保存它。因此,请尝试保存它。

如果您准确地描述了问题,则只有一种方式会发生错误。

最可能的解释是你不准确。要么你的构建命令没有g++ -Wall main.cpp plzsucheclass1.cpp -o listentest,要么你显示的main.cpp不是你正在编译的命令(也许你在不同的目录中运行了g++命令,main.cpp不同

?另一种选择是plzsucheclass1.hpp标头将main定义为宏,因此会导致int main()替换为其他内容。别这样。