первый раз зашел на форум поэтому не судите строго... вобщем проблема такая - понадобилось построить 3D модель процесса, посоветовали opengl посмотрел по форумам, как подключить библиотеки, чтобы можно было использовать его. простую программу написал с двухмерной сценой нормально все прошло. потом начал писать трехмерную. необходимо было построить сферу. стал использовать auxSoludSphere стало выдавать ошибки. много думал, читал, потом просто скопировал программу из примера с использованием этой функции. такие же дела. вот код программы : | Код | #include <windows.h> #include <gl.h> #include <glu.h> #include <glaux.h>
void CALLBACK resize(int width,int height) { glViewport(0,0,width,height); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(-5,5, -5,5, 2,12); gluLookAt( 0,0,5, 0,0,0, 0,1,0 ); glMatrixMode( GL_MODELVIEW ); } void CALLBACK display(void) { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glTranslated(0.01,0,0); glColor3d(1,0,0); auxSolidSphere( 1 );
auxSwapBuffers();
}
void main() { float pos[4] = {3,3,3,1}; float dir[3] = {-1,-1,-1};
GLfloat mat_specular[] = {1,1,1,1};
auxInitPosition( 50, 10, 400, 400); auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE ); auxInitWindow( "Glaux Template"); auxIdleFunc(display); auxReshapeFunc(resize);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialf(GL_FRONT, GL_SHININESS, 128.0); auxMainLoop(display); } |
вот. прикомпиляции выдает : | Цитата | c:\program files\microsoft visual studio 9.0\vc\include\glaux.h(374) : warning C4068: неизвестная директива pragma Журнал построения был сохранен в "file://c:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\22\22\Debug\BuildLog.htm" 22 - ошибок 0, предупреждений 1 |
вот. а при построении решения - | Цитата | c:\program files\microsoft visual studio 9.0\vc\include\glaux.h(374) : warning C4068: неизвестная директива pragma Компиляция манифеста в ресурсы... Microsoft ® Windows ® Resource Compiler Version 6.0.5724.0 Copyright © Microsoft Corporation. All rights reserved. Компоновка... 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__gluLookAt@72 в функции "void __stdcall resize(int,int)" (?resize@@YGXHH@Z) 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glOrtho@48 в функции "void __stdcall resize(int,int)" (?resize@@YGXHH@Z) glaux.lib(glaux.obj) : error LNK2001: неразрешенный внешний символ "__imp__glOrtho@48" 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glLoadIdentity@0 в функции "void __stdcall resize(int,int)" (?resize@@YGXHH@Z) glaux.lib(glaux.obj) : error LNK2001: неразрешенный внешний символ "__imp__glLoadIdentity@0" 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glMatrixMode@4 в функции "void __stdcall resize(int,int)" (?resize@@YGXHH@Z) glaux.lib(glaux.obj) : error LNK2001: неразрешенный внешний символ "__imp__glMatrixMode@4" 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glViewport@16 в функции "void __stdcall resize(int,int)" (?resize@@YGXHH@Z) glaux.lib(glaux.obj) : error LNK2001: неразрешенный внешний символ "__imp__glViewport@16" 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glColor3d@24 в функции "void __stdcall display(void)" (?display@@YGXXZ) 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glTranslated@24 в функции "void __stdcall display(void)" (?display@@YGXXZ) 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClear@4 в функции "void __stdcall display(void)" (?display@@YGXXZ) 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glMaterialf@12 в функции _main 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glMaterialfv@12 в функции _main 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glLightfv@12 в функции _main 22.obj : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnable@4 в функции _main glaux.lib(glaux.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glDrawBuffer@4 в функции _auxInitWindowAW@8 glaux.lib(glaux.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClearIndex@4 в функции _auxInitWindowAW@8 glaux.lib(glaux.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glClearColor@16 в функции _auxInitWindowAW@8 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glCallList@4 в функции _auxWireSphere@8 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEndList@0 в функции _auxWireSphere@8 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ _gluSphere@20 в функции _auxWireSphere@8 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ _gluQuadricDrawStyle@8 в функции _auxWireSphere@8 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ _gluNewQuadric@0 в функции _auxWireSphere@8 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glNewList@8 в функции _auxWireSphere@8 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ _gluQuadricNormals@8 в функции _auxSolidSphere@8 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glPopMatrix@0 в функции _auxWireCylinder@16 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ _gluCylinder@36 в функции _auxWireCylinder@16 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glTranslatef@12 в функции _auxWireCylinder@16 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glRotatef@16 в функции _auxWireCylinder@16 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glPushMatrix@0 в функции _auxWireCylinder@16 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glEnd@0 в функции _drawbox@52 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glBegin@4 в функции _drawbox@52 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glVertex3dv@4 в функции _drawbox@52 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glNormal3dv@4 в функции _drawbox@52 glaux.lib(shapes.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__glGenLists@4 в функции _makeModelPtr@12 glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__wglMakeCurrent@8 в функции _tkInitWindowAW@8 glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__wglCreateContext@4 в функции _tkInitWindowAW@8 glaux.lib(tk.obj) : error LNK2019: ссылка на неразрешенный внешний символ __imp__wglDeleteContext@4 в функции _CleanUp@0 C:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\22\Debug\22.exe : fatal error LNK1120: 35 неразрешенных внешних элементов Журнал построения был сохранен в "file://c:\Documents and Settings\Администратор\Мои документы\Visual Studio 2008\Projects\22\22\Debug\BuildLog.htm" 22 - ошибок 40, предупреждений 1 |
грешу на glaux, но вроде библиотеки и dll подключил. у меня стоит VC++ express edition 2008. Это сообщение отредактировал(а) Rickert - 7.12.2009, 15:55
|