python - Mac OS X中的python错误 undefined symbol : “_P

在Mac OS X(10.6.8)中构建SUMO(城市交通模拟http://sumo.sf.net/)时,发生以下错误。我不认为这是特定于SUMO的,而是Mac相关问题中的python安装,所以我在这里发布。仅供引用,这里的python版本是2.7.1。

关于如何解决此问题的任何想法?

libtool: link: g++ -g -pthread -o sumo sumo_main.o ./microsim/MSMoveReminder.o -Wl,-bind_at_load  -L/opt/local/lib ./netload/libnetload.a ./microsim/libmicrosim.a ./microsim/cfmodels/libmicrosimcfmodels.a ./microsim/devices/libmicrosimdevs.a ./microsim/output/libmicrosimoutput.a ./microsim/trigger/libmicrosimtrigger.a ./microsim/actions/libmsactions.a ./microsim/traffic_lights/libmicrosimtls.a ./utils/geom/libgeom.a ./utils/shapes/libshapes.a ./traci-server/libtraciserver.a ./utils/options/liboptions.a ./utils/common/libcommon.a ./utils/xml/libxml.a ./utils/importio/libimportio.a ./utils/iodevices/libiodevices.a ./foreign/tcpip/libtcpip.a ./foreign/nvwa/libnvwa.a -lxerces-c /opt/local/lib/libproj.dylib -lm -pthread
Undefined symbols:
"_PyImport_Import", referenced from:
traci::TraCIServer::runEmbedded(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in libtraciserver.a(TraCIServer.o)
"_PyString_FromString", referenced from:
traci::TraCIServer::runEmbedded(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in libtraciserver.a(TraCIServer.o)
"_Py_Finalize", referenced from:
traci::TraCIServer::runEmbedded(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in libtraciserver.a(TraCIServer.o)
"_Py_Initialize", referenced from:
traci::TraCIServer::runEmbedded(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in libtraciserver.a(TraCIServer.o)
"_Py_InitModule4_64", referenced from:
traci::TraCIServer::runEmbedded(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in libtraciserver.a(TraCIServer.o)
"_PyRun_SimpleFileExFlags", referenced from:
traci::TraCIServer::runEmbedded(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in libtraciserver.a(TraCIServer.o)
"_PyErr_Print", referenced from:
traci::TraCIServer::runEmbedded(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)in libtraciserver.a(TraCIServer.o)
"_PyArg_ParseTuple", referenced from:
traci::traciemb_execute(_object*, _object*)in libtraciserver.a(TraCIServer.o)
"_Py_BuildValue", referenced from:
traci::traciemb_execute(_object*, _object*)in libtraciserver.a(TraCIServer.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[3]: *** [sumo] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all] Error 2
make: *** [all-recursive] Error 1

最佳答案

我在SUMO网站(here)上找到了一个链接:

 export CPPFLAGS="$CPPFLAGS -I/opt/local/include"
 export LDFLAGS="$LDFLAGS -L/opt/local/lib -lpython2.7"
./configure --with-fox=/opt/local --with-proj-gdal=/opt/local --with-xerces=/opt/local --prefix=/opt/sumo --with-python

它对我来说可以克服此编译错误。这些行可与MacPort一起使用。

关于python - Mac OS X中的python错误 undefined symbol : “_PyImport_Import” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8338584/

相关文章:

jquery - MVC 4 : How to use the “partial validatio

msbuild - MSbuild 4.0无法编译.Net 3.5项目

spring - 哪个工具可以验证 Spring 配置

installation - 编译后ISTool错误

eclipse - 在Eclipse/STS中进行编译不会产生任何输出

ruby - 无法安装rmagick

visual-studio-2008 - midl : error MIDL9008

c# - 引用的.NET程序集中的解析类型

.net - Visual Studio Web引用错误

gcc - 将 gcc vector::iterator 传递给函数有什么问题?