erreur LNK2019 symbole externe non résolu dans Visual Studio 12 à l'aide de openglbook.com
Je suis en train de mettre en place openGL avec glew et freeglut, à l'aide de ce guide.
J'ai suivi le guide jusqu'à l'étape 7, mais lors de la compilation à l'aide du code à partir du chapitre 1 du livre (comme conseillé), j'obtiens les erreurs répertoriées ci-dessous. Je peux voir que les erreurs se produisent dans les fonctions _InitWindow et _RenderFunction, mais je ne sais pas comment les résoudre.
Error 1 error LNK2019: unresolved external symbol __imp__glutInitWindowSize@8 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 2 error LNK2019: unresolved external symbol __imp__glutInitDisplayMode@4 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 3 error LNK2019: unresolved external symbol __imp__glutMainLoop@0 referenced in function _main c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 4 error LNK2019: unresolved external symbol __imp__glutPostRedisplay@0 referenced in function _RenderFunction c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 5 error LNK2019: unresolved external symbol __imp__glutSwapBuffers@0 referenced in function _RenderFunction c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 6 error LNK2019: unresolved external symbol __imp__glutReshapeFunc@4 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 7 error LNK2019: unresolved external symbol __imp__glutDisplayFunc@4 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 8 error LNK2019: unresolved external symbol __imp____glutInitWithExit@12 referenced in function _glutInit_ATEXIT_HACK@8 c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 9 error LNK2019: unresolved external symbol __imp____glutCreateWindowWithExit@8 referenced in function _glutCreateWindow_ATEXIT_HACK@4 c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 10 error LNK2019: unresolved external symbol __imp__glutSetOption@8 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 11 error LNK2019: unresolved external symbol __imp__glutInitContextVersion@8 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 12 error LNK2019: unresolved external symbol __imp__glutInitContextFlags@4 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 13 error LNK2019: unresolved external symbol __imp__glutInitContextProfile@4 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error 14 error LNK1120: 13 unresolved externals c:\users\lissau\documents\visual studio 2012\Projects\ConsoleApplication1\Debug\ConsoleApplication1.exe ConsoleApplication1
Le code dans ma main.c fichier est:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <GL/glew.h>
#include <GL/freeglut.h>
#define WINDOW_TITLE_PREFIX "Chapter 1"
int CurrentWidth = 800,
CurrentHeight = 600,
WindowHandle = 0;
void Initialize(int, char*[]);
void InitWindow(int, char*[]);
void ResizeFunction(int, int);
void RenderFunction(void);
int main(int argc, char* argv[])
{
Initialize(argc, argv);
glutMainLoop();
exit(EXIT_SUCCESS);
}
void Initialize(int argc, char* argv[])
{
InitWindow(argc, argv);
fprintf(
stdout,
"INFO: OpenGL Version: %s\n",
glGetString(GL_VERSION)
);
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
}
void InitWindow(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitContextVersion(4, 0);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);
glutSetOption(
GLUT_ACTION_ON_WINDOW_CLOSE,
GLUT_ACTION_GLUTMAINLOOP_RETURNS
);
glutInitWindowSize(CurrentWidth, CurrentHeight);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
WindowHandle = glutCreateWindow(WINDOW_TITLE_PREFIX);
if(WindowHandle < 1) {
fprintf(
stderr,
"ERROR: Could not create a new rendering window.\n"
);
exit(EXIT_FAILURE);
}
glutReshapeFunc(ResizeFunction);
glutDisplayFunc(RenderFunction);
}
void ResizeFunction(int Width, int Height)
{
CurrentWidth = Width;
CurrentHeight = Height;
glViewport(0, 0, CurrentWidth, CurrentHeight);
}
void RenderFunction(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
glutPostRedisplay();
}
Évidemment, le linker ne trouve pas que le freeglut de la bibliothèque. Mieux vous refaites les étapes. J'ai fait le même exemple avec VS 2012 il y a quelques minutes et il a bien fonctionné.
Je vous remercie pour votre réponse. Cependant, en tant que débutant, je n'ai pas trouvé la solution évidente, et à en juger par la quantité de questions à propos de l'erreur LNK2019, je ne pense pas que je suis le seul.
Je vous remercie pour votre réponse. Cependant, en tant que débutant, je n'ai pas trouvé la solution évidente, et à en juger par la quantité de questions à propos de l'erreur LNK2019, je ne pense pas que je suis le seul.
OriginalL'auteur Attaque | 2013-04-12
Vous devez vous connecter pour publier un commentaire.
Après de refaire les étapes du tutoriel plusieurs fois avec pas de chance, je suis allé freestyle pour trouver la réponse (qui n'était pas dans le tutoriel).
Mon problème était que la bibliothèque supplémentaire répertoires du chemin d'accès, n'a pas été fixée pour le chemin de mes fichiers lib. Changer cela par un clic droit sur votre projet, sélectionnez "configurations" dans le menu déroulant, puis passez à l'éditeur de liens->général>d'autres Répertoires de la Bibliothèque->modifier. Dans mon cas, je l'ai mis à "C:\Program Fichiers %28x86%29\Microsoft SDKs\Windows\v8.0A\Lib".
OriginalL'auteur Attaque