CGAL链接器错误 - 未找到符号:___ gmpq_clear

时间:2010-11-03 00:27:50

标签: swig cgal

我正在尝试将CGAL合并到现有的模拟项目中,但是我遇到了一些链接器问题。 python模拟keiro.py在swig包装器中使用了一个名为physics.cpp的文件来加速常见操作......我设法让我的physics.cpp文件进行编译,但运行Python模拟错误时出现以下消息:< / p>

  

追踪(最近一次通话):    文件“keiro.py”,第2行,in      来自世界进口世界,查看    文件“/Users/marcstrauss/Desktop/keiro/world.py”,第9行,in      来自fast.physics导入Vec2d,粒子,世界作为PhysicsWorld    文件“/Users/marcstrauss/Desktop/keiro/fast/physics.py”,第7行,in      import _physics   ImportError:dlopen(/ Users / marcstrauss / Desktop / keiro / fast / physics.so,2):符号不是&gt;找到:_ _gmpq_clear    参考自:/Users/marcstrauss/Desktop/keiro/fast/_physics.so    预计在:平面命名空间   在/Users/marcstrauss/Desktop/keiro/fast/_physics.so

我认为在目标文件中无法识别___gmpq_clear符号的错误意味着我没有正确链接到CGAL。这是我的makefile:

  

all:physics.py _physics.so graphutils.py _graphutils.so

     

_physics.so:setup_physics.py physics_wrap.cxx physics.cpp   python setup_physics.py build_ext --inplace -I / opt / local / include /

     

_graphutils.so:setup_graphutils.py graphutils_wrap.cxx graphutils.cpp   python setup_graphutils.py build_ext --inplace -I / opt / local / include /

     

physics.py physics_wrap.cxx:physics.i physics.h   swig -python -c ++ physics.i

     

graphutils.py graphutils_wrap.cxx:graphutils.i graphutils.h   swig -python -c ++ graphutils.i -I / opt / local / include /   清洁:   rm -f physics.py   rm -f graphutils.py   rm -f * .cxx   rm -f *〜* .pyc * .pyo   rm -f * .so   rm -rf build

对于我如何解决这个问题,有没有人有任何想法?谢谢!

1 个答案:

答案 0 :(得分:6)

在我的计算机上,__gmpq_clear符号位于libgmp库中:

nm libgmp.a | grep gmpq_clear
00000000 T __gmpq_clear

尝试将-lgmp添加到您的链接命令。