隐秘链接错误。我从哪里开始?

时间:2013-01-21 03:16:20

标签: macos compiler-construction matplotlib-basemap

我正在尝试从源代码构建底图工具包,以便在OS X 10.8下在我的MacBook Pro上运行matplotlib。 C和C ++编译器是最新Xcode包中包含的编译器。该软件包包括geos-3.3.3软件包,需要单独构建并在构建主底图python软件包之前安装。当我这样做时,使用提供的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

在Fedora 17机器上,使用gcc 4.7,这个库成功构建,因此Mac编译器/链接器显然会发生一些事情。但是,我不知道如何解码此消息。例如,什么是“虚拟的thunk”?有关如何在Mac上编译和构建它的任何见解?

1 个答案:

答案 0 :(得分:1)

我使用了不同的编译器,问题就消失了。尝试:

制作CXX = c ++

为我工作。 OSX 10.8.3,XCode 4.6.1。