web-dev-qa-db-ger.com

LINK: schwerwiegender Fehler LNK1561: Eintrittspunkt muss definiert werden. ERROR IN VC++

Ich habe MS VS VC++ zum ersten Mal installiert, um OpenGL mit der GLFW-Bibliothek zu programmieren. Ich folge eine Anleitung zur Installation unter http://shawndeprey.blogspot.com/2012/02/setting-up-glfw-in-visual-studio-2010.html .__ Dann schrieb ich das einfaches Programm, nur um es zu testen, welches auf Eclipse funktionierte:

#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;
}

Aber dann bekam ich diesen schrecklichen Fehler:

------ 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 ==========

Ich weiß, ich habe mich im Internet umgesehen und die einzige Lösung, die ich gefunden habe, war "Es braucht die Funktion main(), um funktionieren zu können". Ich habe es natürlich genau dort, aber es wirft mir immer noch den gleichen fatalen Fehler :(

Wäre großartig, eine Antwort auf die Behebung des Problems zu erhalten. Es könnte mir ein Fehler im Installationsprozess oder so etwas geben.

29
SortOf

Ist dies ein Konsolenprogramm oder ein Windows-Projekt? Ich frage, weil für ein Win32 und ein ähnliches Projekt der Einstiegspunkt WinMain() ist. 

  1. Klicken Sie mit der rechten Maustaste auf das Projekt (nicht die Lösung) auf der linken Seite.
  2. Klicken Sie dann auf Eigenschaften -> Konfigurationseigenschaften -> Linker -> System

Wenn dort Subsystem Windows steht, sollte Ihr Einstiegspunkt WinMain () sein, d. H. 

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

Außerdem von den Kommentaren. Dies ist ein Kompilierungsfehler (oder genauer ein Link), kein Laufzeitfehler. Wenn Sie mit dem Debuggen beginnen, muss der Compiler ein vollständiges Programm erstellen (nicht nur, um Ihr Modul zu kompilieren), und dann tritt der Fehler auf. 

Es kommt nicht einmal zum Punkt, der geladen und ausgeführt wird.

23
collaborator

Es kann nicht den Einstiegspunkt für Ihr Programm finden, in diesem Fall main(). Ihre Linker-Einstellungen sind wahrscheinlich falsch.

Siehe diesen Beitrag hier

8
ash

In meinem Fall lief das Programm normal. Nach einem Tag bin ich auf dieses Problem gestoßen, ohne nichts zu tun.

Die Lösung, die funktioniert hat (vor dem Bearbeiten war der Bereich leer): 

 enter image description here

Ändern Sie es in Console (/ SUBSYSTEM: CONSOLE)

6
Matas Lesinskas

Sie können diesen Fehler erhalten, wenn Sie ein Projekt als .exe-Datei definieren, jedoch eine .lib oder eine .dll erstellen möchten

4

Main fehlte in der Einstiegspunktkonfiguration . enter image description here

0
lizard

In Visual Studio: Eigenschaften -> Advanced -> Einstiegspunkt -> schreiben Sie nur den Namen der Funktion, von der aus das Programm ausgeführt werden soll, ohne Berücksichtigung von Groß- und Kleinschreibung, ohne Klammern und Befehlszeilenargumente.

0
Brackets

Bei VS ist dies geschehen, nachdem ich die Zeilenenden der Datei geändert habe. Durch das Zurücksetzen auf Windows CR LF wurde das Problem behoben.

0
sdff