Glaux lib как подключить в visual studio
Перейти к содержимому

Glaux lib как подключить в visual studio

OpenGL и MS Visual Studio 2008

Доброго времени суток.
Вопрос не новый, но просьба не посылать к Гуглу и Яндексу.
Сам вопрос:
ОС — Windows7,
IDE — MS Visual Studio 2008 Professional Edition,
API — OpenGL.
Не компилируется проект.
Ошибка: c:\program files\microsoft sdks\windows\v6.0a\include\gl\glaux.h(42) : fatal error C1014: too many include files : depth = 1024. т.е. много включенных файлов.
Главный файл(*.cpp):
#include «stdafx.h»

#pragma comment(lib, «opengl32.lib»)
#pragma comment(lib, «glu32.lib»)
#pragma comment(lib, «glaux.lib»)

#include <windows.h>
#include «3DMODEL.h»

Создавал отдельный хедер(3DMODEL.h):
#pragma once
#ifndef _3dModel_h
#define _3dModel_h
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#endif

Один хер, та же ошибка.
Хоть систему сноси, ставь XP и Visual C++ 6.0 (все работает)

P.S. Скачал DevIL-SDK-x64-1.7.8, но увы.

12 ответов

не катит. сразу ошибки с неизвестным идентификаторами, поробовал различные варианты.
Просьба еще советы, и объяснить в чем причина.

P.S. ОС — Windows7 (Тип системы: 32). Вдруг поможет.

что-то в этом есть.
ибо я тут пошарился по форумам у Майкрософта и нашел:

1) install glut 3.6 or newer as directed.
2) Open Visual studio 2008 and create a new project
3) choose c++ — empty solution
4) import all the files from your previous OpenGL project
5) delete all headers i.e.

#include <gl\glu.h>
#include <gl\gluax.h>
and any other GL headers

6) then replace with #include <gl\glut.h>
7) recompile.

или можно извратнуться, поставить PlatformSDK для Win2003 и подключать оттуда

Скачал с opengl.org glut 3.7 с дирекории include\gl скопировал все файлы (из знакомых только glut.h. такие как fgl.h,fglu.h, fglut, glsmap.h и tube.h вижу впервые и еще не разбирался для чего они).
Заменил в коде glaux.h на glut.h. Ошибка C1014 исчезла, но появились ошибки с низвестными инденфикаторами.
d:\projects\3dmodel\3dmodel\3dmodel.cpp(43) : error C3861: ‘auxSwapBuffers’: identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(53) : error C3861: ‘_getch’: identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(59) : error C3861: ‘auxInitPosition’: identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(60) : error C2065: ‘AUX_RGB’ : undeclared identifier
d:\projects\3dmodel\3dmodel\3dmodel.cpp(60) : error C2065: ‘AUX_DEPTH’ : undeclared identifier
d:\projects\3dmodel\3dmodel\3dmodel.cpp(60) : error C2065: ‘AUX_DOUBLE’ : undeclared identifier
d:\projects\3dmodel\3dmodel\3dmodel.cpp(60) : error C3861: ‘auxInitDisplayMode’: identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(61) : error C3861: ‘auxInitWindow’: identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(62) : error C3861: ‘auxIdleFunc’: identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(63) : error C3861: ‘auxReshapeFunc’: identifier not found
d:\projects\3dmodel\3dmodel\3dmodel.cpp(83) : error C3861: ‘auxMainLoop’: identifier not found
Что подрубать?
И почему не срабатывал код
#pragma once
#ifndef _3dModel_h
#define _3dModel_h
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glaux.h>
#endif
Он же должен был проверять чтоб открывался только один экземпляр, если не ошибаюсь.

С этим понятно это из conio.h.
d:\projects\3dmodel\3dmodel\3dmodel.cpp(53) : error C3861: ‘_getch’: identifier not found
А остальные тогда откуда брать если glaux.h не катит?

Где? В файлах gl.h, glu.h нет таких вызовов.

А в моих файлах glaux.h вызывался только в одном месте, как мне посоветовали, я заменил сразу его на glut.h. И появились ошибки с неизвестными идентификаторами.
Cамо слово glaux осталось только в:
#pragma comment(lib, «glaux.lib»)
менял на:
#pragma comment(lib, «glut32.lib»)
те же ошибки

P.S.
по этому пути глянул не было там файла glaux.lib
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
скопировал ошибки те же, залил туда же glut32.lib, та жа бодяга
Объясните где я не прав.

Кароче, функции, котрые вызывались из glaux, теперь оттуда не вызываются, ибо нет таково файла, не подключено он к проекту. Так же?

поэтому имена функций, начинающиеся с «aux» какбэ же не летают. GLAUX и GLUT абсолютно разные библиотеки, со схожим функционалом.

Найдите пример с GLUT (а их валом!) и все поймете

полазил в самом glut.h нашел функции заменил.
//void CALLBACK resize(int width,int height)
void resize(int width,int height)

//void CALLBACK display(void)
void display(void)

int _tmain(int argc, _TCHAR* argv[])
<
float pos[4] = <3,3,3,1>;
float dir[3] = <-1,-1,-1>;

glutInit(&argc, argv);
glutInitWindowPosition( 50, 10);
glutInitWindowSize(350,350);
//auxtInitPosition( 50, 10, 400, 400);
glutInitDisplayMode( GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE );
//auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE );
glutCreateWindow( «Model» );
//auxInitWindow( «Model» );
glutIdleFunc(display);
//auxIdleFunc(display);
glutReshapeFunc(resize);
//auxReshapeFunc(resize);

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);

Но другая ошибка
d:\projects\3dmodel\3dmodel\3dmodel.cpp(61) : error C2664: ‘glutInit’ : cannot convert parameter 2 from ‘_TCHAR *[]’ to ‘char **’
как лучше изменить glutInit.

Пока сам ищу, но может народ быстрее подскажет.

Но продолжаем дальше.
LINK : fatal error LNK1000: Internal error during IncrBuildImage
выдавала при компиляци. Исправили скачали KB948127 у Microsoft.

Glaux lib как подключить в visual studio

>В меню Project/setting, выберите закладку LINK. В строке "Object/Library Modules" добавьте "OpenGL32.lib GLu32.lib GLaux.lib"

а как это делать в MSVS2008.

там у проекта другие настройки
не могу понять куда писать .DLL

Меню пользователя zaytsewa
Посмотреть профиль
Найти ещё сообщения от zaytsewa
Меню пользователя WestGott
Посмотреть профиль
Найти ещё сообщения от WestGott

хочу подключить библиотеку *.DLL линкеру
и всё.

как это сделать в интерфейсе VS2008??
там столько всяких полей для заполнения.
так вот куда конкретно прописать имя библиотеки.

Меню пользователя zaytsewa
Посмотреть профиль
Найти ещё сообщения от zaytsewa

zaytsewa
Непосредственно Dll-библиотеку к линкеру подключить невозможно.
На стандартные Dll-библиотеки, есть так называемые библиотеки импорта
Например для библиотеки Shell32.dll есть библиотека импорта Shell32.lib
для User32.dll есть User32.lib и т.п.
Если есть библиотека импорта на подключаемую dll
тогда открываем: свойства проекта -> компоновщик -> ввод
Далее в поле "дополнительные зависимости" вводим имя библиотеки импорта и всё.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *