Linux.org.ua

Технічні питання => Розробка => Гілку створено: EXPLOID від 2010-05-19 18:36:04

Тема: opengl
Автор: EXPLOID від 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
Підкажіть будь ласка як скомпілити.
Тема: Re: opengl
Автор: Володимир Лісівка від 2010-05-19 19:03:25
Бібліотека лежить в /usr/lib/libglut.so.3 , відповідно ключик буде "-lglut".
Тема: Re: opengl
Автор: EXPLOID від 2010-05-19 20:50:06
Ще питання як настроїти Eclipse або Anjuta щоб компілювало з -lglut?
Тема: Re: opengl
Автор: Володимир Лісівка від 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)


Тема: Re: opengl
Автор: EXPLOID від 2010-05-19 22:26:08
Можна детальніше про Makefile або лінки на якесь faq бо я в цьому нічого не тямлю  :-[ звик програмувати в віндовс, створив проект і запустив
Тема: Re: opengl
Автор: Володимир Лісівка від 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
Тема: Re: opengl
Автор: EXPLOID від 2010-05-20 00:16:52
Дякую за пояснення