我第一次安装了MS VS VC ++,以便开始用GLFW库编写OpenGL。我关注如何在http://shawndeprey.blogspot.com/2012/02/setting-up-glfw-in-visual-studio-2010.html安装它的说明 然后我编写了这个简单的程序,只是为了测试它,它在Eclipse上工作:
#include <stdlib.h>
#include <GL/glfw.h>
using namespace std;
int main()
{
int running = GL_TRUE;
if (!glfwInit()) {
exit(EXIT_FAILURE);
}
if (!glfwOpenWindow(300, 300, 0, 0, 0, 0, 0, 0, GLFW_WINDOW)) {
glfwTerminate();
exit(EXIT_FAILURE);
}
while (running) {
// glClear( GL_COLOR_BUFFER_BIT );
glfwSwapBuffers();
running = !glfwGetKey(GLFW_KEY_ESC) && glfwGetWindowParam(GLFW_OPENED);
}
glfwTerminate();
exit(EXIT_SUCCESS);
return 0;
}
但后来我收到了这个可怕的错误:
------ Build started: Project: first1, Configuration: Debug Win32 ------
LINK : fatal error LNK1561: entry point must be defined
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我知道,我在互联网上环顾四周,我找到的唯一解决方案是“它需要main()
功能才能工作”。我显然有它,就在那里,但它仍然给我带来同样的致命错误:(
很高兴得到如何解决它的回应。我可能在安装过程中存在缺陷或其他原因。
答案 0 :(得分:23)
这是一个控制台程序项目还是Windows项目?我问,因为对于Win32和类似的项目,入口点是WinMain()
。
如果说Subsystem Windows
你的入口点应该是WinMain(),即
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
{
your code here ...
}
此外,谈到评论。这是一个编译(或更准确地说是一个链接)错误,而不是运行时错误。当您开始调试时,编译器需要创建一个完整的程序(而不仅仅是编译您的模块),这就是发生错误的时候。
它甚至没有达到加载和运行的程度。
答案 1 :(得分:8)
它无法找到您的计划的入口点,在本例中为main()
。您的链接器设置可能不正确。
答案 2 :(得分:6)
将其更改为控制台(/ SUBSYSTEM:CONSOLE)它将起作用
答案 3 :(得分:6)
答案 4 :(得分:4)
如果将项目定义为.exe但意图创建.lib或.dll
,则会出现此错误答案 5 :(得分:1)
在我更改文件的行结尾后,我已经在VS上发生了这种情况。将它们更改回Windows CR LF解决了这个问题。
答案 6 :(得分:0)
在Visual Studio中:
属性->
高级->
入口点->
只写出您希望程序开始运行的函数的名称,区分大小写,不带任何括号和命令行参数。
答案 7 :(得分:0)