1

CGAL を既存のシミュレーション プロジェクトに組み込もうとしていますが、リンカーに問題があります。Python シミュレーション keiro.py は、swig ラッパーで physicals.cpp というファイルを使用して、一般的な操作を高速化します...physics.cpp ファイルをコンパイルすることはできましたが、Python シミュレーションを実行すると、次のメッセージが表示されてエラーが発生します。

トレースバック (最新の呼び出しが最後): ファイル "keiro.py"、2 行目、from world import World、ビュー ファイル "/Users/marcstrauss/Desktop/keiro/world.py"、9 行目、from fast.physics import Vec2d, Particle, World as PhysicsWorld File "/Users/marcstrauss/Desktop/keiro/fast/physics.py", line 7, in import _physics ImportError: dlopen(/Users/marcstrauss/Desktop/keiro/fast/physics.so , 2): Symbol not >found: _ _gmpq_clear 参照元: /Users/marcstrauss/Desktop/keiro/fast/_physics.so

オブジェクト ファイルで ___gmpq_clear シンボルが認識されないというエラーは、CGAL に正しくリンクしていないことを意味していると思います。これが私のメイクファイルです:

すべて: physicals.py _physics.so graphutils.py _graphutils.so

_physics.so: setup_physics.py physicals_wrap.cxx physicals.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/

physicals.py physicals_wrap.cxx: physicals.i physicals.h swig -python -c++ physicals.i

graphutils.py graphutils_wrap.cxx: graphutils.i graphutils.h swig -python -c++ graphutils.i -I/opt/local/include/ clean: rm -f physicals.py rm -f graphutils.py rm -f *.cxx rm -f *~ *.pyc *.pyorm -f *.so rm -rf ビルド

これを修正する方法について誰かが私にアイデアを持っていますか? ありがとう!

4

1 に答える 1

6

私のコンピューターでは、__gmpq_clearシンボルは libgmp ライブラリにあります。

nm libgmp.a | grep gmpq_clear
00000000 T __gmpq_clear

-lgmpリンク コマンドに追加してみてください。

于 2010-11-03T00:57:20.727 に答える