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.
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()
.
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é.
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
changez-le en Console (/ SUBSYSTEM: CONSOLE) cela fonctionnera
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
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.
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.