我正在尝试编译我的课程,但出现以下错误
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
make: *** [try] Error 1
但是,我确实在一个称为Hash.cpp的类中包含一个主要函数。这是makefile:
C++ = g++
CFLAGS = -c -g
all: hash
hash: Hash.o ML_hash.o
$(C++) -o hash Hash.o ML_hash.o
%.o: %.cpp
$(C++) $(CFLAGS) $*.cpp
当我分别调用“ make clean”和“ make”时,仍将生成输出可执行文件“ hash”。如果Hash.cpp在makefile中列出并包含一个主要函数,为什么出现以下错误?
编辑:
抱歉...。我的意思是说主要功能。这是主要的类:
#include "HashNode.h"
#include "MLH_back1.h"
#include <iostream>
using std::cout;
using std::endl;
int main()
{
doStuff();
}
很抱歉,如果我没有发布足够的代码。通常,当我问问题时,我会尝试在发生问题的位置发帖,因此仅列出相关信息,而不是列出所有班级的信息。说“我有一个主要功能”是指我确实在名为Hash.cpp的类中编写了一个主要功能。我只是想尝试从概念上了解当我有主要功能时为什么会发生此错误。我看过其他问题,所以我不打算重复。我没意识到人们会这么拒绝...
但是,我确实包含一个主类,在我称为Hash.cpp的类中
在C ++中,您需要具有主要功能,而不是类或类中的方法,因为它是其他OOP语言中出现的。
那是程序的入口。这是不公平的,因为在调用main函数的地方已经完成了一些预处理,但这就是您编写的条目。
最琐碎的C ++程序会这样:
int main() { return 0; }
如果该错误因相同的错误而解决,则可能是您混淆了32位和64位,在这种情况下,“进入”点也可能出现此类问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句