我正在尝试从源代码构建底图工具包,以便在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上编译和构建它的任何见解?
答案 0 :(得分:1)
我使用了不同的编译器,问题就消失了。尝试:
制作CXX = c ++
为我工作。 OSX 10.8.3,XCode 4.6.1。