Настройка OpenGL на Fedora - PullRequest
       16

Настройка OpenGL на Fedora

4 голосов
/ 20 февраля 2012

Я пытался настроить (установить и получить нужные библиотеки) для своего компьютера, чтобы я мог начать графическое программирование.

Я посетил сайт OpenGL и нашел его бесполезным.Я попробовал страницу настройки Wikibooks , но там есть информация об установке, специфичная для Debian и Debian-подобных систем, и я не смог найти соответствующий материал для fedora.

Я знаю C и pythonи я предпочел бы работать в C, если это возможно, я нашел PyOpenGL.noarch и установил его, используя yum.

Я посмотрел пару других сайтов и не нашел много, но мне удалось установить freeglut-devel

Я проверил и нашел библиотеки GL в папке / usr / include / GL, но когда я пытаюсь запустить следующий код {взят с самого сайта wikibooks, поэтому я предполагаю, что он работает}:

#include <stdio.h> /* printf */
#include <GL/glut.h> /* glut graphics library */
/* 
* Linux c console program 
* gcc f.c -lglut
* ./a.out
* */
main(int argc, char **argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
   glutCreateWindow("red 3D lighted cube");
   printf("GL_VERSION = %s\n",glGetString(GL_VERSION) ); /* GL_VERSION = 2.1.2 NVIDIA      195.36.24 */

return 0; 
}

И когда я делаю gcc -lglut filename.c

Я получаю следующие ошибки:

/usr/bin/ld: /usr/lib/gcc/i686-redhat-linux/4.6.1/../../../libglut.so: undefined reference to symbol 'glGetString'
/usr/bin/ld: note: 'glGetString' is defined in DSO /usr/lib/libGL.so.1 so try adding it to the linker command line
/usr/lib/libGL.so.1: could not read symbols: Invalid operation
collect2: ld returned 1 exit status

И я понятия не имею, что делать.

AБазовая пошаговая процедура будет высоко ценится, но если любая помощь всегда приветствуется.

1 Ответ

4 голосов
/ 20 февраля 2012

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

Этот вопрос также предполагает, что вам также понадобится -lGLU.

Кроме того, я бы поставил библиотеки после исходных файлов, которые их используют, так:

gcc filename.c -lglut -lGL -lGLU

Вместо:

gcc -lglut -lGL -lGLU filename.c 

Существует еще немного информации о том, почему вы получаете это сообщение на fedora здесь , но основное исправление заключается в явном связывании отсутствующей библиотеки.

...