Автор Гілка: opengl  (Прочитано 2115 раз)

Відсутній EXPLOID

  • Новачок
  • *
  • дописів: 15
  • Карма: +0/-0
opengl
« : 2010-05-19 18:36:04 »
Привіт всім вирішив скомпілити  код з використанням opengl (а саме glut) і отримав масу помилок типу:
undefined reference to `gl...'
Погугливши натрапив на ось цю тему. http://linux.org.ua/cgi-bin/yabb/YaBB.pl?num=1182930856/8
Як я зрозумів треба додати додаткові параметри для компілятора, після додавання -lGL отримав ті самі  помилки в але до функцій які відповідають за створення вікна:
undefined reference to `glut...'
При спробі підключити -lGLw отримав:
cannot find -lGLw
Підкажіть будь ласка як скомпілити.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: opengl
« Відповідей #1 : 2010-05-19 19:03:25 »
Бібліотека лежить в /usr/lib/libglut.so.3 , відповідно ключик буде "-lglut".
[Fedora Linux]

Відсутній EXPLOID

  • Новачок
  • *
  • дописів: 15
  • Карма: +0/-0
Re: opengl
« Відповідей #2 : 2010-05-19 20:50:06 »
Ще питання як настроїти Eclipse або Anjuta щоб компілювало з -lglut?

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: opengl
« Відповідей #3 : 2010-05-19 21:53:48 »
Створити Makefile і прописати в ньому цілі.


CC=gcc
CFLAGS=-I$(IDIR)

LIBS= -lGL

DEPS = hellomake.h

OBJ = hellomake.o hellofunc.o

.PHONY: all clean

all: hellomake

clean:
      rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~

%.o: %.c $(DEPS)
      $(CC) -c -o $@ $< $(CFLAGS)

hellomake: $(OBJ)
      gcc -o $@ $^ $(CFLAGS) $(LIBS)


[Fedora Linux]

Відсутній EXPLOID

  • Новачок
  • *
  • дописів: 15
  • Карма: +0/-0
Re: opengl
« Відповідей #4 : 2010-05-19 22:26:08 »
Можна детальніше про Makefile або лінки на якесь faq бо я в цьому нічого не тямлю  :-[ звик програмувати в віндовс, створив проект і запустив

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: opengl
« Відповідей #5 : 2010-05-19 23:50:52 »
make реалізує стратегію будування програми, яка описана в файлі Makefile.

У вищенаведеному файлі, стратегія для "make all" буде дуже проста:
 * якщо файли, які необхідні для досягнення цілі, не мінялися, то нічого не робити;
 * для досягення цілі all необхідний файл "hellomake" ;
 * для hellomake потрібно мати hellomake.o hellofunc.o і виконати команду gcc -o hellomake FILE1.o FILE2.o ... GCC_OPTIONS ;
 * для отримання файлу з розширенням .o треба мати файл з розширенням .c і файл hellomake.h
 і виконати команду gcc -c -o FILE.o FILE.c GCC_OPTIONS ;

Для "make clean":
 * повидаляти вказані файли (там помилка, до речі - зайві каталоги).

Мейку можна ставити різні цілі, напр. можна напр. поставити ціль скомпілювати окремий проміжний файл: "make hellomake.o".

Документація:

http://translate.google.com/translate?js=y&prev=_t&hl=uk&ie=UTF-8&layout=1&eotf=1&u=http%3A%2F%2Fwww.opennet.ru%2Fdocs%2FRUS%2Fmake_compile%2Fmake-2.html&sl=auto&tl=uk
« Змінено: 2010-05-20 00:20:39 від lvm »
[Fedora Linux]

Відсутній EXPLOID

  • Новачок
  • *
  • дописів: 15
  • Карма: +0/-0
Re: opengl
« Відповідей #6 : 2010-05-20 00:16:52 »
Дякую за пояснення