Я пытаюсь создать функцию в своей программе, которая рисует диск. У меня есть файл .h с именем drawShape, где есть все мои функции рисования. Я пытаюсь добавить drawDisk к нему, как показано ниже: howerver Я продолжаю ошибаться, говоря, что у меня есть неопределенная ссылка на gluNewQuadric и gluDisk. У меня есть #include библиотека glu.h, поэтому я не уверен, что не так с моим кодом.gluDisk() function opengl
void drawDisk(double inDiameter, double outDiameter, int vertSlices, int horizSlices)
{
GLUquadricObj *disk;
disk = gluNewQuadric();
gluDisk(disk, inDiameter, outDiameter, vertSlices, horizSlices);
}
Вот мой makefile, как указано ниже в разделе комментариев.
VRUI_MAKEDIR := /opt/local/Vrui-2.6/share/make
ifdef DEBUG
VRUI_MAKEDIR := $(VRUI_MAKEDIR)/debug
endif
INSTALLDIR := $(shell pwd)
# Set resource directory:
RESOURCEDIR = images
########################################################################
########################################################################
# Include definitions for the system environment and system-provided
# packages
include $(VRUI_MAKEDIR)/SystemDefinitions
include $(VRUI_MAKEDIR)/Packages.System
include $(VRUI_MAKEDIR)/Configuration.Vrui
include $(VRUI_MAKEDIR)/Packages.Vrui
# Set installation directory structure:
BININSTALLDIR = $(INSTALLDIR)/$(EXEDIR)
RESOURCEINSTALLDIR = $(INSTALLDIR)/$(RESOURCEDIR)
########################################################################
########################################################################
PACKAGES = MYVRUI
########################################################################
########################################################################
ALL = $(EXEDIR)/SolarSystem
.PHONY: all
all: $(ALL)
########################################################################
#'make clean'
########################################################################
.PHONY: extraclean
extraclean:
.PHONY: extrasqueakyclean
extrasqueakyclean:
# Include basic makefile
include $(VRUI_MAKEDIR)/BasicMakefile
########################################################################
########################################################################
TEST = drawShape.cpp\
solarSystem.cpp\
planet.cpp\
skybox.cpp
$(OBJDIR)/SolarSystem.o: CFLAGS += -DPICDIR='"$(RESOURCEINSTALLDIR)"'
$(EXEDIR)/SolarSystem: $(TEST:%.cpp=$(OBJDIR)/%.o)
install: $(ALL)
@echo Installing Vrui example programs in $(INSTALLDIR)...
@install -d $(BININSTALLDIR)
@install $(ALL) $(BININSTALLDIR)
@install -d $(RESOURCEINSTALLDIR)
@install $(RESOURCEDIR)/EarthTopography.png
#include включает только определения заголовков. Вы должны сообщить своему компоновщику ссылку на библиотеку glu. Возможно, что-то вроде «-lglu» в Unix/Mac или добавление любого файла .lib для GLU в Windows. – darron
Я использую make-файл для компиляции моей программы, потому что он использует другие библиотеки. Если я скомпилирую с помощью -lglu, он жалуется, что ему не хватает других каталогов. – TRod
Я смущен. -l не является эксклюзивным вариантом (у вас может быть несколько) ... add -lglu И ваши другие библиотеки. Если есть другие недостающие библиотеки, вам нужно будет опубликовать сообщения об ошибках отсутствующих символов или никто не узнает, что не так для вашего конкретного случая. – darron