LNK2001错误OpenGL Visual Studio 2010 [英] LNK2001 error opengl visual studio 2010
问题描述
我正在使用Visual Studio 2010.
I am using Visual Studio 2010.
我得到了以下错误消息:
And I have got this error message:
Error 9 error LNK2001: unresolved external symbol __imp____glewUseProgram C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 10 error LNK2001: unresolved external symbol __imp____glewUseProgram C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 11 error LNK2001: unresolved external symbol __imp____glewGetProgramInfoLog C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 12 error LNK2001: unresolved external symbol __imp____glewGetProgramiv C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 13 error LNK2001: unresolved external symbol __imp____glewLinkProgram C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 14 error LNK2001: unresolved external symbol __imp____glewAttachShader C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 15 error LNK2001: unresolved external symbol __imp____glewGetShaderInfoLog C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 16 error LNK2001: unresolved external symbol __imp____glewGetShaderiv C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 17 error LNK2001: unresolved external symbol __imp____glewCompileShader C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 18 error LNK2001: unresolved external symbol __imp____glewShaderSource C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 19 error LNK2001: unresolved external symbol __imp____glewCreateShader C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 20 error LNK2001: unresolved external symbol __imp____glewCreateProgram C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\InitShader.obj lab22
Error 21 error LNK2001: unresolved external symbol __imp____glewVertexAttribPointer C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 22 error LNK2001: unresolved external symbol __imp____glewEnableVertexAttribArray C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 23 error LNK2001: unresolved external symbol __imp____glewGetAttribLocation C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 24 error LNK2001: unresolved external symbol __imp____glewBufferData C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 25 error LNK2001: unresolved external symbol __imp____glewBindBuffer C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 26 error LNK2001: unresolved external symbol __imp____glewGenBuffers C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 27 error LNK2001: unresolved external symbol __imp____glewBindVertexArray C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 28 error LNK2001: unresolved external symbol __imp____glewGenVertexArrays C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 29 error LNK2019: unresolved external symbol __imp__glewInit@0 referenced in function _main C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 30 error LNK2001: unresolved external symbol __imp__glewExperimental C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\lab22\lab22.obj lab22
Error 31 error LNK1120: 21 unresolved externals C:\Users\LENOVO\Desktop\Tugas\Smst5\Komgraf\lab\lab22\Debug\lab22.exe lab22
这是我的程序
#pragma comment(lib, "opengl32.lib")
#pragma comment(lib, "glu32.lib")
#pragma comment(lib, "glut32.lib")
#include "include\Angel.h"
const int NumPoints = 3;
void
init( void )
{
// Specifiy the vertices for a triangle
vec2 vertices[3] = {
vec2( -0.75, -0.75 ), vec2( 0.0, 0.75 ), vec2( 0.75, -0.75 )
};
// Create a vertex array object
GLuint vao[1];
glGenVertexArrays( 1, vao );
glBindVertexArray( vao[0] );
// Create and initialize a buffer object
GLuint buffer;
glGenBuffers( 1, &buffer );
glBindBuffer( GL_ARRAY_BUFFER, buffer );
glBufferData( GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW );
// Load shaders and use the resulting shader program
GLuint program = InitShader( "vshader21.glsl", "fshader21.glsl" );
glUseProgram( program );
// Initialize the vertex position attribute from the vertex shader
GLuint loc = glGetAttribLocation( program, "vPosition" );
glEnableVertexAttribArray( loc );
glVertexAttribPointer( loc, 2, GL_FLOAT, GL_FALSE, 0,
BUFFER_OFFSET(0) );
glClearColor( 1.0, 1.0, 1.0, 1.0 ); // white background
}
void
display( void )
{
glClear( GL_COLOR_BUFFER_BIT ); // clear the window
glDrawArrays( GL_TRIANGLES, 0, NumPoints ); // draw the points
glFlush();
}
void
keyboard( unsigned char key, int x, int y )
{
switch ( key ) {
case 033:
exit( EXIT_SUCCESS );
break;
}
}
int
main( int argc, char **argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_RGBA );
glutInitWindowSize( 512, 512 );
glutCreateWindow( "Red Triangle" );
glewExperimental=GL_TRUE;
glewInit();
init();
glutDisplayFunc( display );
glutKeyboardFunc( keyboard );
glutMainLoop();
return 0;
}
我认为我已经正确安装了glut,freeglut和glew,我已经编辑了链接器,但仍然出错.我在项目和Visual Studio中放入了glut,freeglut和glew文件夹,但它仍然显示该错误.对于我可以编译的第一个项目,现在我使用的是Angle.h,它无法编译
I think I already install glut,freeglut and glew correctly, I already edit my linker but its still error. I put glut, freeglut, and glew folder in my project and in my visual studio but it still show that error. for the first project I can compile, now I'm using Angle.h and it cannot compile
推荐答案
由于您正在使用预处理程序黑客来链接其余库,因此我想您可能想要这样做:
Since you are using pre-processor hacks to link against the rest of your libraries, I imagine you probably want to do this:
#pragma comment(lib, "glew32.lib")
通常,您将使用项目设置来设置链接库,但是许多教程使用预处理器指令,因为它避免了引导用户完成配置Visual Studio项目的工作(每个新版本都不同).
Usually you would use project settings to set up linked libraries, but a lot of tutorials use the pre-processor directive because it avoids having to walk users through configuring Visual Studio projects (which differs with every new version).
这篇关于LNK2001错误OpenGL Visual Studio 2010的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!