Linux.org.ua
Технічні питання => Розробка => Гілку створено: 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
Підкажіть будь ласка як скомпілити.
-
Бібліотека лежить в /usr/lib/libglut.so.3 , відповідно ключик буде "-lglut".
-
Ще питання як настроїти Eclipse або Anjuta щоб компілювало з -lglut?
-
Створити 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)
-
Можна детальніше про Makefile або лінки на якесь faq бо я в цьому нічого не тямлю :-[ звик програмувати в віндовс, створив проект і запустив
-
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
-
Дякую за пояснення