Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Библиотека для OpenGL под Linux


Автор: Dark Elf 21.10.2005, 09:42
Добрый день!

Не подскажете какие библиотеки (файлы с расширением .а) нужно подключить к проекту при подключении gl.h и glu.h в Linux — проекте?
(Чтобы не писало unresolved external glVertex2d... и т.д.)

И если у себя их не найду где взять?

Заранее благодарен за ответ


Автор: bilbobagginz 21.10.2005, 10:56
Привет!

Обычно используют файлы библиотеки-архивы (libХPEH.3.HAET.4TO.а) в случаях если:
    i) разрабатывают саму библиотеку
    ii) библиотека - своя, маленькая и родная, законченная ( отлаженная ), закрытая (т.е. добавлять в нее ничего уже не будем ) и в конце проекта будет вставлена в екзешник дистрибутива и не будет видна пользователю.
    iii) отлаживают всю программу, и подозревают в глюках саму данную библиотеку, и почему-то хотят ее именно в формате .а ( это, в принципе, тоже вариация на i) )
Сами либы такого формата лежат там же где все либы ( или если свои, то тоже где-то, где проект знает )

Если же мы, напр. "учимся программировать при помощи либы X или Y", то используем библиотеку в формате .so ( shared object ), и делаем это автоматом во время запуска, а точнее загрузчика. Делает это "динамический связчик" ( dynamic linker - в нашем случае это сам g++/gcc ) - вставляя специальные маленькие дополнения в екзешник. Для этого собираем программу с флажком -l<имя либы> ( это маленькая латинская "л"). При запуске такой программы используется "динамический загрузчик" ( динамический загрузчик - ld, dynamic loader

Наш случай: мы разрабатываем с libGL.<версия>.so или libGLU.<версия>.so
Значит, для сборки нашей новой крутой игрушки "super-pooper-shooter" нужно запустить gcc примерно так:
Код

g++ sps.C -lGL -o super-pooper-shooter


Дополнительный плюс этого пути в том, что если ты используешь различные либы, от которых зависит libGLU.so, то в ручную к ним не нужно привязываться - их загрузит ld сам, при загрузке самой библиотеки.

Надеюсь это объясняет тему ;)

Автор: Dark Elf 21.10.2005, 11:10
libGL.so и libGLU.so и *.а не обнаружены (хотя заголовки есть), скачал http://www.mesa3d.org/ сейчас компилю.

Объяснил прекрасно, так что думаю много вопросов по использованию Мезы отпадут.

Тода раба smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)