Не знаю почему, но в каждой новой версии CGAL процедура компиляции полностью меняется.Таким образом, даже невозможно перекомпилировать старый кусок кода (6 месяцев), потому что он больше не работает так.
Честно говоря, я очень устал от переделки всего make-файла моих проектов, использующих CGAL.каждый раз.На этот раз для libcgal8 я не нашел простой замены.Вот make-файл, который я обычно использовал:
ifndef CGAL_MAKEFILE
CGAL_MAKEFILE = /usr/local/cgal/share/cgal/cgal.mk
endif
include $(CGAL_MAKEFILE)
LIBPATH = \
$(CGAL_LIBPATH)
LDFLAGS = \
$(LONG_NAME_PROBLEM_LDFLAGS) \
$(CGAL_LDFLAGS)
COMP=-frounding-math -fopenmp -std=c++0x -l json -L$(LIBPATH) $(LDFLAGS)
EXEC=../crender
all: main.o
g++ -fPIC main.o $(EXEC) $(COMP)
main.o: main.cpp ../common/common.hpp
g++ -c main.cpp $(COMP) -o main.o
Итак, что мне нужно изменить, чтобы он снова заработал?Если возможно, решение, которое доживет до будущих изменений CGAL.
Если оно может помочь, вот такая ошибка, которую я получаю:
В функции CGAL::Gmpq_rep::Gmpq_rep()':<br>
main.cpp:(.text._ZN4CGAL8Gmpq_repC2Ev[_ZN4CGAL8Gmpq_repC5Ev]+0x14): undefined reference to
__ gmpq_init'
И я получаю такие ошибки для других функций, таких как "__gmpg_add", "__gmpq_sub" и "__gmpq_mul."
РЕШЕНИЕ: Вам необходимо добавить "-lgmp" винструкция по компиляции.Прискорбно, что по умолчанию это не делается make-файлом, предоставляемым CGAL!