2011-07-05 36 views
2

我想在Ubuntu 11.04上使用gcc 4.5.2构建所有Boost库。所以我开始下载tar.bz2文件。我扩大了它。我跑bootstrap.sh,发现它抱怨unicode的,所以我安装:建筑物升压1.46.1 *与openmpi *?

sudo apt-get install libicu-dev

而现在它似乎使用Unicode愉快地建设。麻烦的是,我想也连接到OpenMPI。呃哦。所以,我想补充using mpi ;./tools/build/v2/user-config.jam跑到我的生成命令:

./bjam --layout=versioned --build-type=complete

并提高打印出的错误(我略大段):

error: Duplicate name of actual target: <pstage/lib>mpi.so 
error: previous virtual target { common%common.copy-mpi.so.PYTHON_EXTENSION { 

...那么几页...

error: created from ./stage-proper 
error: another virtual target { common%common.copy-mpi.so.PYTHON_EXTENSION { 

...那么几页...

error: created from ./stage-proper 
error: added properties: <debug-symbols>off <define>NDEBUG <inlining>full <library>object(file-target)@3501 <library>object(file-target)@3568 <library>object(file-target)@4171 <library>object(file-target)@4184 <library>object(searched-lib-target)@4066 <library>object(searched-lib-target)@4072 <library>object(searched-lib-target)@4078 <optimization>speed <runtime-debugging>off <variant>release <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/mpi/build/gcc-4.5.2/release/threading-multi <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/python/build/gcc-4.5.2/release/threading-multi <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/serialization/build/gcc-4.5.2/release/threading-multi 
error: removed properties: <debug-symbols>on <inlining>off <library>object(file-target)@1244 <library>object(file-target)@1350 <library>object(file-target)@2378 <library>object(file-target)@2393 <library>object(searched-lib-target)@2217 <library>object(searched-lib-target)@2223 <library>object(searched-lib-target)@2229 <optimization>off <runtime-debugging>on <variant>debug <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/mpi/build/gcc-4.5.2/debug/threading-multi <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/python/build/gcc-4.5.2/debug/threading-multi <xdll-path>/home/mtibbits/src/boost_1_46_1/bin.v2/libs/serialization/build/gcc-4.5.2/debug/threading-multi 
/home/mtibbits/src/boost_1_46_1/tools/build/v2/build/virtual-target.jam:490: in actualize-no-scanner from module object(file-target)@4661 
/home/mtibbits/src/boost_1_46_1/tools/build/v2/build/virtual-target.jam:135: in object(file-target)@4661.actualize from module object(file-target)@4661 
/home/mtibbits/src/boost_1_46_1/tools/build/v2/build-system.jam:748: in load from module build-system 
/home/mtibbits/src/boost_1_46_1/tools/build/v2/kernel/modules.jam:283: in import from module modules 
/home/mtibbits/src/boost_1_46_1/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module 
/home/mtibbits/src/boost_1_46_1/boost-build.jam:17: in module scope from module 

它似乎是一个bug追溯到升压1.40?但我知道其他人已经得到这个工作。有没有人知道让Boost 1.46.1与openmpi搭配起来所需要的巫术?

注意:我一直在使用谷歌搜索,这似乎不是一个Ubuntu的具体问题 - 它已出现在gentoo和其他地方。但我还没有找到任何具体的解决方案,除了没有mpi ...,我不能。

我会愉快地张贴整个日志,包版本等

回答

0

从其他一些论坛上,我发现,在/工具/建设/ CMake的/外部对象,应该有一个MPI.cmake文件。 添加以下行应允许您使用OpenMPI构建Boost:

set(MPI_INCLUDE_PATH /usr/include/openmpi-x86_64) 
set(MPI_COMPILE_FLAGS -I/usr/include/openmpi-x86_64) 
set(MPI_LINK_FLAGS -L/usr/lib64/openmpi/lib -L/usr/lib64/openmpi/lib/openmpi 
-lmpi_cxx -lmpi) 
set(MPI_LIBRARIES /usr/lib64/openmpi/lib/libmpi.so 
/usr/lib64/openmpi/lib/libmpi_cxx.so) 
set(MPI_FOUND 1) 
+0

我从您的答案中看到您是Cuda粉丝。什么让你感兴趣转向OpenMPI(你认为OpenCL)? – Remi

+0

我没有使用cmake。我试图将你的解决方案整合到tools/build/v2/tools/mpi.jam中 - 它使用了不同的语法,但我仍然无法使它工作。 –

+0

使用--debug-configuration,看起来可能是jam正在拾取两个不同的mpi共享库,但需要更多调查。 (刚搬家,48小时内没有上网 - 电话除外)。周一晚上我会发布更多信息,如果你能帮助我做到这一点,我很乐意为你提供赏金。 –