2

matplotlibをOSX10.8のMacBookProで実行するために、ソースからベースマップツールキットをビルドしようとしています。CおよびC++コンパイラは、最新のXcodeパッケージに含まれているものです。パッケージにはgeos-3.3.3パッケージが含まれており、メインのbasemappythonパッケージをビルドする前に個別にビルドしてインストールする必要があります。提供されたMakefileを使用してこれを行うと、makefileがlibgeos.dylibライブラリをビルドしようとしたときに次のエラーが発生します。

Undefined symbols for architecture x86_64:
  "std::auto_ptr<geos::geom::Envelope>::auto_ptr(std::auto_ptr_ref<geos::geom::Envelope>)", referenced from:
      virtual thunk to geos::geom::GeometryCollection::computeEnvelopeInternal() constin libgeom.a(GeometryCollection.o)
  "__ZNSt8auto_ptrIN4geos4geom8EnvelopeEEcvSt12auto_ptr_refIT_EIS2_EEv", referenced from:
      virtual thunk to geos::geom::GeometryCollection::computeEnvelopeInternal() constin libgeom.a(GeometryCollection.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

gcc4.7を搭載したFedora17マシンでは、このライブラリは正常にビルドされるため、Macコンパイラ/リンカーで明らかに何かが起こっています。ただし、このメッセージをデコードする方法がわかりません。たとえば、「仮想サンク」とは何ですか?Macでこれをコンパイルしてビルドする方法についての洞察はありますか?

4

1 に答える 1

1

別のコンパイラを使用したところ、問題は解消されました。試す:

make CXX=c++

私のために働いた。OS X 10.8.3、XCode 4.6.1。

于 2013-04-15T01:31:57.003 に答える