Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки в glx.h? не компилируется 
V
    Опции темы
VirtualVoid
Дата 8.12.2009, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 4.8.2009
Где: Сибирь

Репутация: нет
Всего: 1



Даже не знаю куда написать... В вопросы для новичков, openGL или Linux/UNIX, но пусть будет здесь.

При попытке компиляции следующего кода:
Код

#include <GL/glx.h>

int main()
{
    return 0;
}


выдается длиннейшее полотно синтаксических  ошибок в файле glx.h вида:
Код

/usr/include/GL/glx.h:495: error: typedef ‘PFNGLXFREEMEMORYMESAPROC’ is initialized (use __typeof__ instead)
/usr/include/GL/glx.h:495: error: ‘Display’ was not declared in this scope
/usr/include/GL/glx.h:495: error: ‘dpy’ was not declared in this scope
/usr/include/GL/glx.h:495: error: expected primary-expression before ‘int’
/usr/include/GL/glx.h:495: error: expected primary-expression before ‘void’
/usr/include/GL/glx.h:496: error: typedef ‘PFNGLXGETMEMORYOFFSETMESAPROC’ is initialized (use __typeof__ instead)
/usr/include/GL/glx.h:496: error: ‘Display’ was not declared in this scope
/usr/include/GL/glx.h:496: error: ‘dpy’ was not declared in this scope
/usr/include/GL/glx.h:496: error: expected primary-expression before ‘int’
/usr/include/GL/glx.h:496: error: expected primary-expression before ‘const’
/usr/include/GL/glx.h:506: error: ‘Bool’ does not name a type
/usr/include/GL/glx.h:507: error: ‘Bool’ does not name a type
/usr/include/GL/glx.h:508: error: ‘Bool’ does not name a type
/usr/include/GL/glx.h:532: error: ‘Bool’ does not name a type
/usr/include/GL/glx.h:533: error: expected ‘;’ before ‘*’ token
/usr/include/GL/glx.h:534: error: ‘GLXDrawable’ does not name a type


И все в таком духе.

Т.е. такое чувство, что выше надо подключать еще что-то.
Но в примерах в инете этот файл подключают в основном перед всеми. И вобще те примеры не компилируются с такими же ошибками.
Аналогичные записи содержатся в glxext.h и еще нескольких. Если подключить только gl.h, то программа компилируется без вопросов(и даже без варнингов).

Так все же как правильно компилировать OpenGL программы в линуксе?
PM MAIL ICQ   Вверх
andrew_121
Дата 8.12.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 3
Всего: 33



VirtualVoid, Какой дистрибутив?
В какой пакет входят эти хидеры?
У меня таких нет.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
VirtualVoid
Дата 8.12.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 4.8.2009
Где: Сибирь

Репутация: нет
Всего: 1



Дистрибутив SLES(работаю на удаленной машине).
gl.h и glx.h поставляются вместе с иксами, насколько я понял. На той машине они лежат в /usr/include/GL/
компилирую просто:
g++ ./code.cpp
гцц выдает тот же самый результат.

Для корректной работы этого дела там еще надо указать библиотеки для компоновщика(-lX11, -lGL и т.д.), но для таких ошибок это безразлично.

На всякий случай: иксы на сервере и X-форвардинг работают нормально, glxgears выдает вполне приличную картинку.

PM MAIL ICQ   Вверх
kemiisto
Дата 8.12.2009, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



Цитата(VirtualVoid @  8.12.2009,  17:46 Найти цитируемый пост)
Если подключить только gl.h, то программа компилируется без вопросов(и даже без варнингов).

А на кой, простите, чёрт Вы тогда подключаете ненужный хидер? Зачем подключать хидер с расширениями OpenGL для работы с X Window System?

Добавлено @ 17:22
VirtualVoid, если действительно нужно - подключать по следующей схеме:
Код

#include<stdio.h>
#include<stdlib.h>
#include<X11/X.h>
#include<X11/Xlib.h>
#include<GL/gl.h>
#include<GL/glx.h>
#include<GL/glu.h>

Стандартные, иксовые, OpenGL и и только потом его расширения.

Это сообщение отредактировал(а) kemiisto - 8.12.2009, 17:22


--------------------
PM MAIL WWW GTalk Jabber   Вверх
VirtualVoid
Дата 8.12.2009, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 4.8.2009
Где: Сибирь

Репутация: нет
Всего: 1



Цитата(kemiisto @  8.12.2009,  22:14 Найти цитируемый пост)
Зачем подключать хидер с расширениями OpenGL для работы с X Window System? 


Ну тогда тут совсем другой вопрос. OpenGL под линукс я ни разу не использовал, поэтому не знаю как его инициализировать по-другому(не с помощью glx). Вроде как-то можно через qt, но там ее нет. Ведь сам стандарт openGL и файл gl.h не содержит функций инициализации.

Есть gtk, это может как-то помочь?

PM MAIL ICQ   Вверх
kemiisto
Дата 8.12.2009, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



VirtualVoid, Вам оконные режим надо инициализировать? Колбеки чтоб можно было на события вешать? 

Если не хотите привязываться к GTK/Qt смотрите в сторону GLUT.

Это сообщение отредактировал(а) kemiisto - 8.12.2009, 17:27


--------------------
PM MAIL WWW GTalk Jabber   Вверх
VirtualVoid
Дата 8.12.2009, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 4.8.2009
Где: Сибирь

Репутация: нет
Всего: 1



В сторону GLUT смотрел, он там не собирается и требует какую-то сборочную утилиту, выдает такую ошибку:

Код

xmkmf
xmkmf: Команда не найдена.


Я не администратор на той машине, поэтому не могу ставить что захочу. Обращаться к администраторам - долго =)

Есть еще freeGLUT, но там дела еще хуже. Он собирается как большинство программ, но включает хедер glx.h, соответственно при попытке сборки выводит сообщения об ошибках в точности как в первом посте.

Как вариант, сейчас попробую достать xmkmf и добавить путь до нее в свое окружение, но это вряд ли поможет. Уж больно специфически выглядит весь процесс сборки GLUT...

PM MAIL ICQ   Вверх
kemiisto
Дата 8.12.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: нет
Всего: 160



VirtualVoid, а ты исправленную версию поста видел? Даже так не работает?


--------------------
PM MAIL WWW GTalk Jabber   Вверх
VirtualVoid
Дата 8.12.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 4.8.2009
Где: Сибирь

Репутация: нет
Всего: 1



Так заработало, спасибо за помощь!

Только вот тех файлов(каталог include/X11/) не оказалось на той машине, за то оказались на другой. Но это уже прихоти ставившего систему..
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.