gpt4 book ai didi

c++ - CGAL 的生成文件 (libcgal8)

转载 作者:太空狗 更新时间:2023-10-29 21:27:42 26 4
gpt4 key购买 nike

我不知道为什么,但在每个新版本的 CGAL 中,编译过程都会完全改变。因此,甚至不可能重新编译旧代码(6 个月前),因为它不再那样工作了。

坦率地说,我厌倦了每次都使用 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 的 future 变化中存活下来的解决方案。

如果有帮助的话,下面是我遇到的错误类型:

In function 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”。遗憾的是,CGAL 提供的 makefile 并没有默认完成!

最佳答案

(在评论和编辑中回答。参见 Question with no answers, but issue solved in the comments (or extended in chat))

OP 写道:

You need to add "-lgmp" in the compilation instruction. It's sad that it's not done by default by the makefile provided by CGAL!

@sloriot 添加:

Since January 2009 (release 3.4), CGAL is using cmake as build system. Since then, all include/link compiler flags are provided through the cmake mechanism (CGALConfig.cmake).

As mentioned above, now CGAL uses cmake as build system. While compiling CGAL example with cmake, I encountered similar problem. Solution is to add and link GMP library. Here is how its done for cmake: Cmake basic library linking problem

关于c++ - CGAL 的生成文件 (libcgal8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8774643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com