2011-07-05 73 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小時內沒有上網 - 電話除外)。週一晚上我會發布更多信息,如果你能幫助我做到這一點,我很樂意爲你提供賞金。 –