0

Linux で動作するコードがいくつかあり、Max 10.6.8 でコードをコンパイルしようとしています。私は EPD 32 ビット python、g++ バージョン 4.2.1、swig バージョン 2.0.9 を使用しています。ここに私が使用しているコマンドがあります

swig -c++ -python pythoncpp.i
g++ -O2 -fPIC -c  pythoncpp_wrap.cxx -I/PATH/Library/EPD/2.7-32/include/python2.7  -I/PATH/local/gsl/include
g++ -O2 -fPIC -c  pythoncpp_wrap.cxx -I/PATH/Library/EPD/2.7-32/include/python2.7  -I/PATH/local/gsl/include
g++  -L/Users/densmore3/local/gsl/lib -lpython -dynamclib pythoncpp.o pythoncpp_wrap.o -lgsl -lgslcblas -lm -o _pythoncpp.dylib

最初の 3 行は、エラーまたは警告とともに実行されます。しかし、リンク行は次のエラーをスローします

Undefined symbols:
 "_PyCapsule_Import", referenced from:
  _SWIG_Python_GetModule in pythoncpp_wrap.o
"_PyCapsule_New", referenced from:
  _SWIG_Python_SetModule in pythoncpp_wrap.o
"_main", referenced from:
  start in crt1.10.6.o
"_PyCapsule_GetPointer", referenced from:
  _SWIG_Python_DestroyModule in pythoncpp_wrap.o  
 ld: symbol(s) not found
collect2: ld returned 1 exit status

このエラーを修正するにはどうすればよいですか? ありがとう

4

1 に答える 1

1

今後の参考に。使用する

    ld -bundle -flat_namespace -undefined suppress -L/PATH/local/gsl/lib -lgsl -lgslcblas -lm -o _pythoncpp.so *.o

すべてのファイルをリンクするように働きました。

于 2013-03-21T00:04:10.590 に答える