LNK2019 FreeGLUT / OpenGL问题(库链接问题)

时间:2014-10-24 15:21:13

标签: c++ opengl linker linker-errors freeglut

好吧,我已经看过很多有这个问题的人(或多或少),但我似乎无法弄清问题是什么。我正在尝试学习OpenGL,主要是为了让自己更多地了解渲染和游戏开发,并且有点蠢蠢欲动。但是,我是一名跨行业的.NET程序员,因为我在教室里,所以我还没有触及过C / C ++(尽管我今年才毕业)。

以下是代码:

#define GLUT_DISABLE_ATEXIT_HACK
#include "LUtil.h"
void runMainLoop( int val );
/*
Pre Condition:
 -Initialized freeGLUT
Post Condition:
 -Calls the main loop functions and sets itself to be called back in 1000 / SCREEN_FPS milliseconds
Side Effects:
 -Sets glutTimerFunc
*/

int main( int argc, char* args[] )
{
    //Initialize FreeGLUT
    glutInit( &argc, args );
//Create OpenGL 2.1 context
glutInitContextVersion( 2, 1 );

//Create Double Buffered Window
glutInitDisplayMode( GLUT_DOUBLE );
glutInitWindowSize( SCREEN_WIDTH, SCREEN_HEIGHT );
glutCreateWindow( "OpenGL" );

//Do post window/context creation initialization
if( !initGL() )
{
    printf( "Unable to initialize graphics library!\n" );
    return 1;
}

//Set rendering function
glutDisplayFunc( render );

//Set main loop
glutTimerFunc( 1000 / SCREEN_FPS, runMainLoop, 0 );

//Start GLUT main loop
glutMainLoop();

return 0;
}

void runMainLoop( int val )
{
//Frame logic
update();
render();

//Run frame one more time
glutTimerFunc( 1000 / SCREEN_FPS, runMainLoop, val );
}

LUtil.h引用LOpenGL.h,引用:

#ifndef LOPENGL_H
#define LOPENGL_H

#include <GL/freeglut.h>
#include <GL/glu.h>
#include <GL/gl.h>
#include <stdio.h>

#endif

以下是我遇到的错误:

2>LUtil.obj : error LNK2019: unresolved external symbol __imp_glutSwapBuffers referenced in function "void __cdecl render(void)" (?render@@YAXXZ)
2>main.obj : error LNK2019: unresolved external symbol __imp_glutInit referenced in function main
2>main.obj : error LNK2019: unresolved external symbol __imp_glutInitWindowSize referenced in function main
2>main.obj : error LNK2019: unresolved external symbol __imp_glutInitDisplayMode referenced in function main
2>main.obj : error LNK2019: unresolved external symbol __imp_glutMainLoop referenced in function main
2>main.obj : error LNK2019: unresolved external symbol __imp_glutCreateWindow referenced in function main
2>main.obj : error LNK2019: unresolved external symbol __imp_glutTimerFunc referenced in function "void __cdecl runMainLoop(int)" (?runMainLoop@@YAXH@Z)
2>main.obj : error LNK2019: unresolved external symbol __imp_glutDisplayFunc referenced in function main
2>main.obj : error LNK2019: unresolved external symbol __imp_glutInitContextVersion referenced in function main

以下是我的链接器设置和路径。 CMake \ common目录是我保持freeglut的地方。 我已将x64 freeglut.dll放入我的可执行文件路径中,并且我正在运行x64操作系统。

Additional Dependencies: opengl32.lib;freeglut.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;

Include Directories: C:\CMake\common\include;$(IncludePath)

Library Directories: C:\CMake\common\lib;$(LibraryPath)

这里是我使用的教程(如果有人对顺便提一下最好的OpenGL教程有任何建议,我全都听了,他们看起来都很过时和业余):{{ 3}}

我已按照所有步骤操作并正确链接了我的文件。真正的踢球者是早些时候,我正在学习不同的教程(http://lazyfoo.net/tutorials/OpenGL/01_hello_opengl/index.php);我放弃了那个,因为&#34;工作&#34;教程源附带的代码只显示白屏而不是黑屏上的三角形,由于作者的沟通能力差,教程本身很难理解。我现在使用的这个似乎写得更好,但说明导致我出现这些错误。然而。它至少跑了,并打开了一个渲染窗口。从我可以告诉我的设置与那个设置没有什么不同,除了我使用freeglut的事实。

编辑:您认为这不是一个有点不公平的主持人吗?你的帖子比我的广泛得多。这相当于告诉我去咨询C / C ++教科书而不是在这里发帖。合乎逻辑的结论是关闭此网站,因为资源可在其他地方获得。

0 个答案:

没有答案