0

ここに私の問題があります: Python で C で書かれたアルゴリズムを呼び出さなければなりません。私はswigを使ってそれを行います。

だから私はこのようなexample.iファイルを持っています

%module example
%{
    #include "example.h"
%}
%include "example.h"

私のexample.hファイルはとてもシンプルです

#ifndef EXAMPLE
#define EXAMPLE

#include <gmp.h>

// function that needs gmp library
void myFunction();

#endif

コンパイルする必要があるときは実行します

swig -python example.i
gcc -fpic -std=c99 -c example.c example_wrap.c -I/usr/include/python2.7/    
gcc -shared example.o example_wrap.o -o -lgmp _example.so

これまでのところすべて問題ありませんが、Pythonで例をインポートしようとすると、エラー ImportError: example.so: undefined symbol: __gmpf_cmpが発生します

そのため、swig と gmp ライブラリ間のリンクに問題がありますが、バグの原因がわかりません。

python -V
2.7.3

swig -version
SWIG Version 2.0.4

Ubuntu 12.04

どんな助けでも大歓迎です。

前もって感謝します、

ビクター

4

1 に答える 1

2

-o とライブラリ名の間にあるように -lgmp フラグの順序を間違えたようです。次のようにすると、おそらくうまく機能します。

gcc -shared example.o example_wrap.o -lgmp -o _example.so
于 2013-01-24T18:18:30.793 に答える