致命错误LNK1561 - 必须定义入口点
Fatal error LNK1561 - entry point must be defined
到目前为止,我已经创建了一个简单的链表项目,我将在未来的基础上进行构建。所有文件都可以正确编译,但是当我尝试构建我的项目时,它会出现链接错误。我使用了一个空项目来启动。main.cpp 用于演示我的链表实际工作。我真的很困,不知道如何解决这个问题。
主.cpp
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include "LinkedList.cpp"
#include "LinkedList.h"
using namespace SDI;
template <class T>
int LinkedList<T>::main()
{
LinkedList<T> menu;
menu.insert(1);
menu.insert(4);
menu.insert(7);
menu.insert(2);
menu.insert(8);
menu.display();
Std::cout << "-----" << endl;
menu.remove(2);
menu.remove(1);
menu.remove(10);
menu.display();
return 0;
};
头文件 LinkedList.h
#ifndef SDI_LL
#define SDI_LL
namespace SDI
{
template < class T >
class LinkedList
{
class Node
{
int number;
Node* next;
};
private:
T head;
T current;
T temp;
public:
LinkedList();
~LinkedList();
int main();
void insert(int add);
void remove(int remove);
void display();
};
}
#endif
链接列表.cpp
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <string>
#include "LinkedList.h"
using namespace SDI;
template <class T>
LinkedList<T>::LinkedList()
{
head = NULL;
current = NULL;
temp = NULL;
};
template <class T>
void LinkedList<T>::insert(int add)
{
newnode = new Node;
newnode->next = NULL;
newnode->number = add;
if (head != NULL)
{
current = head;
while (current->next != NULL)
{
current = current->next;
}
current->next = newnode;
}
else
{
head = newnode;
}
};
template <class T>
void LinkedList<T>::remove(int remove)
{
remove1 = NULL;
temp = head;
current = head;
while (current != NULL && current->add != remove)
{
temp = current;
current = current->next;
}
if (current == NULL)
{
std::cout << "N/An";
delete remove1;
}
else
{
remove1 = current;
current = current->next;
temp->next = current;
if (remove1 == head)
{
head = head->next;
temp = NULL;
}
delete remove1;
}
};
template <class T>
void LinkedList<T>::display()
{
current = head;
while (current != NULL)
{
std::cout << current->number;
current = current->next;
}
};
程序中需要一个全局main()
函数,而不是 LinkedList
中的静态版本。main 函数称为入口点,快速查找错误消息会告诉您这一点。
http://en.cppreference.com/w/cpp/language/main_function
类似这样的东西可能会起作用:
int main()
{
LinkedList<int> menu;
menu.insert(1);
menu.insert(4);
menu.insert(7);
menu.insert(2);
menu.insert(8);
menu.display();
Std::cout << "-----" << endl;
menu.remove(2);
menu.remove(1);
menu.remove(10);
menu.display();
return 0;
};
目前,您在类中定义了一个完全不相关的"main"函数。这只是类的一个普通正常函数,与前面提到的int main()
入口点函数无关。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 部分定义/别名模板模板参数
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- #为""定义宏;静态";针对不同的上下文
- 如何确保C++函数在定义之前声明(如override关键字)
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 生成文件问题(体系结构x86_64的未定义符号:"_main",引用自:主可执行文件的隐式入口/启动)
- 初学者问题 - 致命错误LNK1561:必须定义入口点
- 必须定义LNK1561入口点 - SDL
- ld:入口点(起点)未定义.通常在crt1.o中用于体系结构x86_64
- 致命错误LNK1561 - 必须定义入口点
- SDL2:LNK1561:必须定义入口点
- 链接:致命错误LNK1561:必须定义VS2015开发者cmd窗口的入口点
- Visual Studio(2015)C项目依赖项-必须定义LNK1561入口点
- 建筑x86_64的未定义符号:... "_main" ,引用自:主可执行文件的隐式入口/启动
- 错误LNK1561:必须定义入口点
- 必须定义lnk1561入口点
- 如何定义自定义MacOSX框架/动态库的可选入口点