web-dev-qa-db-fra.com

LINK: erreur fatale LNK1561: le point d'entrée doit être défini ERROR IN VC++

J'ai installé MS VS VC++ pour la première fois afin de commencer à programmer OpenGL avec la bibliothèque GLFW. J'ai suivi les instructions sur la façon de l'installer à http://shawndeprey.blogspot.com/2012/02/setting-up-glfw-in-visual-studio-2010.html programme simple, juste pour le tester, qui a fonctionné sur 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;
}

Mais ensuite j'ai eu cette terrible erreur:

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

Je sais, j'ai regardé sur Internet et la seule solution que j'ai trouvée était "Cela nécessite une fonction main() pour fonctionner". De toute évidence, je l’ai, juste là, mais cela me renvoie toujours la même erreur fatale :(

Ce serait formidable d'obtenir une réponse sur la façon de résoudre ce problème. Il pourrait y avoir une faille dans le processus d’installation ou autre.

29
SortOf

S'agit-il d'un projet de programme de console ou d'un projet Windows? Je demande parce que pour un projet Win32 et similaire, le point d’entrée est WinMain()

  1. Cliquez avec le bouton droit sur le projet (pas la solution) sur le côté gauche.
  2. Cliquez ensuite sur Propriétés -> Propriétés de configuration -> Éditeur de liens -> Système

S'il indique Subsystem Windows, votre point d'entrée doit être WinMain (), c'est-à-dire 

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

D'ailleurs, en parlant des commentaires. Il s'agit d'une erreur de compilation (ou plus précisément d'un lien) et non d'une erreur d'exécution. Lorsque vous démarrez le débogage, le compilateur doit créer un programme complet (pas seulement pour compiler votre module) et c’est à ce moment que l’erreur se produit. 

Il n'arrive même pas au point d'être chargé et exécuté.

23
collaborator

Il ne peut pas trouver le point d’entrée de votre programme, dans ce cas, main(). Les paramètres de votre éditeur de liens sont probablement incorrects.

Voir ce post ici

8
ash

Dans mon cas, le programme fonctionnait normalement, puis, après un jour, je suis tombé sur ce problème sans rien faire.

La solution qui a fonctionné (avant édition, la zone était vide): 

 enter image description here

6

changez-le en Console (/ SUBSYSTEM: CONSOLE) cela fonctionnera

6
Matas Lesinskas

Vous pouvez obtenir cette erreur si vous définissez un projet en tant que .exe mais que vous souhaitez créer un .lib ou un .dll

4
Michael Haephrati

Main manquait dans la configuration du point d'entrée .  enter image description here

0
lizard

Dans Visual Studio: Propriétés -> Avancé -> Point d’entrée -> écrivez uniquement le nom de la fonction à partir de laquelle vous souhaitez que le programme s’exécute, sans distinction de casse, ni argument de ligne de commande.

0
Brackets

Cela est arrivé sur VS après avoir modifié les fins de ligne du fichier. Le fait de revenir à Windows CR LF a résolu le problème.

0
sdff