2013-06-12 536 views
23

我首次安装了MS VS VC++,以便开始用GLFW库编程OpenGL。我跟随器上如何通过在http://shawndeprey.blogspot.com/2012/02/setting-up-glfw-in-visual-studio-2010.html 安装说明,然后我写了这个简单的程序,只是为了测试它,它做了Eclipse的工作:LINK:致命错误LNK1561:必须定义入口点在VC++中错误

#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

只是因为这个网站的,我不得不改变他们|:” 他们的:#include 及的:#include SortOf

+0

如果您标记您的代码为'code',通过缩进每行四个空格与空(或点击代码突出显示的{}'按钮),英镑符号将被正确处理。 – IanPudney

+0

这个cpp文件是你的MS项目的一部分吗?如果你右键点击它,它是否会说“Build Action | Compile”? – doctorlove

回答

17

这是一个控制台程序项目或Windows项目?我这么问是因为对于Win32和类似的项目,进入点在WinMain()

  1. 右键单击左侧的项目(不解决方案) 。
  2. 然后点击属性 - >配置属性 - >链接器 - >系统

如果说Subsystem Windows你的切入点应该是的WinMain(),即

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd) 
{ 
    your code here ... 
} 

此外,评论发言。这是一个编译(或更确切地说是一个链接)错误,而不是运行时错误。当你开始调试时,编译器需要编写一个完整的程序(不仅仅是编译你的模块),那就是发生错误的时候。

它甚至没有达到被加载和运行的程度。

+0

恐怕我是盲目的,因为我似乎无法找到“链接器”的位置..... – SortOf

+0

右键单击项目(不在最上面的解决方案条目),然后选择配置属性... – collaborator

+1

现在我已经到了SubSystem应该说“窗口”的地步......它没有提到它。空位。 – SortOf

7

它无法找到您的程序的入口点,在这种情况下,main()。您的链接器设置可能不正确。

this post here

5

其更改为控制台(/子系统:CONSOLE),将工作

+0

不,它不起作用。 会给出错误 – RookieTEC9

+0

这是真正的答案。这对我来说是完美的。 –

+0

cl:命令行警告D9002:忽略未知选项'/ SUBSYSTEM:CONSOLE' – Svend

0

我有这个发生在VS之后,我改变了文件的行结束符。将它们更改回Windows CR LF解决了问题。

0

在Visual Studio: 属性->高级->切入点->只要写你想要的程序开始从,区分大小写运行,无需任何支架和命令行参数的函数的名称。

+0

顺便说一句,前几天在一次讲座中,我听说没有建议制作除'main'之外的函数作为输入函数。 – Brackets

5

在我的情况下,该程序运行正常,然后,有一天,我只是遇到了这个问题,没有做任何事情。

奏效(编辑前,该区域是空的)解决方案:

enter image description here

2

如果你定义一个项目作为一个.exe,但意图创建的.lib你可以得到这个错误或。dll

0

如果有人遇到这个问题仍然存在,我自己在另一个项目中得到了一个空的.cpp文件(甚至在同一个解决方案中),并给它一个简单的主返回0;然后工作正常。

相关问题