boost mpi python:未定义符号:_zn5boost3mpi5timer14时间_是_globalE

2024-05-16 04:03:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我继承了一个使用boostmpi for python的大型python系统。 所以我从源代码构建了boost1.52,包括mpi和python组件。在

我已经从http://mathema.tician.de/software/boostmpi为python1.38.0.1构建了boostmpi。 我知道有更新的库(mpi4py),但我继承的软件使用boostmpi。在

当我试着用它的时候。。。在

$ python
Python 2.7.3 (default, Jan  4 2013, 14:54:17) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import boostmpi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/projects/nrel/cid/lada.2013/pkgi/lib/python2.7/site-packages/boostmpi-1.38.0.1-py2.7-linux-x86_64.egg/boostmpi/__init__.py", line 7, in <module>
    from boostmpi._internal import *
ImportError: /projects/nrel/cid/lada.2013/pkgi/lib/python2.7/site-packages/boostmpi-1.38.0.1-py2.7-linux-x86_64.egg/boostmpi/_internal.so: undefined symbol: _ZN5boost3mpi5timer14time_is_globalEv

>>> from boostmpi._internal import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/projects/nrel/cid/lada.2013/pkgi/lib/python2.7/site-packages/boostmpi-1.38.0.1-py2.7-linux-x86_64.egg/boostmpi/__init__.py", line 7, in <module>
    from boostmpi._internal import *
ImportError: /projects/nrel/cid/lada.2013/pkgi/lib/python2.7/site-packages/boostmpi-1.38.0.1-py2.7-linux-x86_64.egg/boostmpi/_internal.so: undefined symbol: _ZN5boost3mpi5timer14time_is_globalEv

我该怎么解决这个问题?在

使用ldd测试:

^{pr2}$

Tags: inimportlinuxlibpackageslinesitefile
2条回答

这是你的问题

boostmpi-1.38.0.1-py2.7-linux-x86_64.egg/boostmpi/_internal.so  libboost_python.so.1.52.0 => /projects/nrel/cid/lada.2013/pkgi/lib/libboost_python.so.1.52.0 

boostmpi-1.38.0型

libboost_python.1.52.0

你必须修正你的路径,它会得到两个不同版本的boost

你的libs构建不正确。你的乳房/_内部.so要么没有链接到某个boost mpi lib,要么需要与现有版本不同的版本。你可以用

ldd /projects/nrel/cid/lada.2013/pkgi/lib/python2.7/site-packages/boostmpi-1.38.0.1-py2.7-linux-x86_64.egg/boostmpi/_internal.so

检查正在加载的库(如果有的话)。在

相关问题 更多 >