我不知道为什么,但每次CGAL的新版本发布时,编译程序都会完全改变。因此,即使是半年前的旧代码也无法重新编译,因为它不再像以前那样工作了。
我对每次需要重新制作使用CGAL的项目的所有makefile感到非常疲倦。这一次,对于libcgal8,我找不到任何简单的替代品。以下是我通常使用的makefile:
所以,我需要做什么改变才能让它再次工作?如果可能的话,希望找到一个可以适应CGAL未来更改的解决方案。
如果有帮助的话,这是我收到的错误类型:
“在函数`CGAL :: Gmpq_rep :: Gmpq_rep()’中: main.cpp:(.text._ZN4CGAL8Gmpq_repC2Ev[_ZN4CGAL8Gmpq_repC5Ev] + 0x14):对‘__gmpq_init’未定义引用”
我还收到与其他功能类似的错误,例如“__gmpg_add”,“__gmpq_sub”和“__gmpq_mul”。
解决方案: 您需要在编译指令中添加“-lgmp”。令人遗憾的是,CGAL提供的makefile默认不会执行此操作!
我对每次需要重新制作使用CGAL的项目的所有makefile感到非常疲倦。这一次,对于libcgal8,我找不到任何简单的替代品。以下是我通常使用的makefile:
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()’中: main.cpp:(.text._ZN4CGAL8Gmpq_repC2Ev[_ZN4CGAL8Gmpq_repC5Ev] + 0x14):对‘__gmpq_init’未定义引用”
我还收到与其他功能类似的错误,例如“__gmpg_add”,“__gmpq_sub”和“__gmpq_mul”。
解决方案: 您需要在编译指令中添加“-lgmp”。令人遗憾的是,CGAL提供的makefile默认不会执行此操作!