我正在尝试编译我的类,但是我收到以下错误
/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的类中包含了一个main函数。这是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
当我打电话给#34;打扫干净"和"制作"但是,输出可执行文件" hash"仍将生成。如果在makefile中列出了Hash.cpp并包含一个main函数,为什么我会收到以下错误?
编辑:
抱歉....我的意思是说主要功能。这是主要的课程:
#include "HashNode.h"
#include "MLH_back1.h"
#include <iostream>
using std::cout;
using std::endl;
int main()
{
doStuff();
}
如果我没有发布足够的代码,我很抱歉。通常当我提出问题时,我会尝试发布我认为问题发生的地方,因此只列出相关信息而不是我的所有课程。通过说&#34;我有一个主要功能&#34;我想说是的,我确实在一个名为Hash.cpp的类中编写了一个main函数。我只是想要尝试概念性地理解为什么当我有一个main函数时会发生这个错误。我已经查看了其他问题,所以我不想复制。我没有意识到人们会如此沮丧......
答案 0 :(得分:1)
但是,我确实在一个名为Hash.cpp
的类中包含了一个主类
在C ++中,你需要有一个main函数,而不是像其他OOP语言中出现的类或类中的方法。
这是您的计划的切入点。这不太公平,因为在调用main函数时会为您完成一些预处理,但这是您编写的条目。
最琐碎的C ++程序是这样的:
int main() { return 0; }
如果出现相同的错误,很可能是你混合了32位和64位,在这种情况下,这些问题也可能发生在&#34;条目&#34;点。