Reputation: 469
I installed MS VS VC++ for the first time in order to start programming OpenGL with GLFW library. I follower instructions on how to install it over at http://shawndeprey.blogspot.com/2012/02/setting-up-glfw-in-visual-studio-2010.html Then I wrote this simple program, just to test it, which did work on 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;
}
But then I got this awful error:
------ 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 ==========
I know, I've looked around on the internet and the only solution I found was "It requires main()
function in order to work". I obviously have it, right there, but it still throws me the same fatal error :(
Would be great to get response on how to fix it. There might me a flaw in the installation process or something.
Upvotes: 44
Views: 216305
Reputation: 149
In my case, the program was running fine, but after one day, I just ran into this problem without doing anything...
The solution was to manually add 'Main' as the Entry Point (before editing, the area was empty):
Upvotes: 12
Reputation: 4215
You can get this error if you define a project as an .exe but intent to create a .lib or a .dll
Upvotes: 7
Reputation: 572
In Visual Studio:
Properties ->
Advanced ->
Entry Point ->
write just the name of the function you want the program to begin running from, case sensitive, without any brackets and command line arguments.
Upvotes: 0
Reputation: 11
I've had this happen on VS after I changed the file's line endings. Changing them back to Windows CR LF fixed the issue.
Upvotes: 1
Reputation: 632
Is this a console program project or a Windows project? I'm asking because for a Win32 and similar project, the entry point is WinMain()
.
If it says Subsystem Windows
your entry point should be WinMain(), i.e.
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd)
{
your code here ...
}
Besides, speaking of the comments. This is a compile (or more precisely a Link) error, not a run-time error. When you start to debug, the compiler needs to make a complete program (not just to compile your module) and that is when the error occurs.
It does not even get to the point being loaded and run.
Upvotes: 29
Reputation: 3474
It cant find the entry point for your program, in this case main()
. Your linker settings are likely incorrect.
See this post here
Upvotes: 8