cmake:将软件链接到boost::mpi(使用mpich2)
对于此简单代码(取自boost mpi文档): 它找不到boost\u mpi:cmake:将软件链接到boost::mpi(使用mpich2),cmake,mpi,boost-mpi,Cmake,Mpi,Boost Mpi,对于此简单代码(取自boost mpi文档): 它找不到boost\u mpi: CMake Error at /usr/share/cmake/Modules/FindBoost.cmake:1135 (message): Unable to find the requested Boost libraries. Boost version: 1.47.0 Boost include path: /usr/include The following Boost librarie
CMake Error at /usr/share/cmake/Modules/FindBoost.cmake:1135 (message):
Unable to find the requested Boost libraries.
Boost version: 1.47.0
Boost include path: /usr/include
The following Boost libraries could not be found:
boost_mpi
但是!我已安装了以下软件包:
boost-graph-mpich2
boost-mpich2
boost-mpich2-devel
boost-mpich2-python
mpich2
mpich2-devel
为什么它找不到?互联网上有很多例子,人们使用查找包(需要使用Boost 1.4组件mpi)Boost可能没有安装在模块FindBoost搜索的位置。通过将变量Boost_ROOT设置为Boost安装前缀,可以指定安装Boost的前缀 在您的代码中,我要添加:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(mpi-tests CXX)
set( BOOST_ROOT "/path/to/boost/install/prefix" )
FIND_PACKAGE(Boost 1.4 COMPONENTS mpi serialization REQUIRED)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(test ${Boost_LIBRARIES})
你在什么操作系统上运行这个?嗯。find_package()中的1.4似乎很奇怪。你试过1.47.0吗?那只是可以使用的Boost的最低版本。它可以找到
Boost版本:1.47.0
。改成1.47.0不起作用。我发现boost-mpich2将库安装到/usr/lib/mpich2/
(或者,/usr/lib64/mpich2/
用于x86_64体系结构)。此外,boost库位于/usr/{lib,lib64}/
中。
boost-graph-mpich2
boost-mpich2
boost-mpich2-devel
boost-mpich2-python
mpich2
mpich2-devel
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(mpi-tests CXX)
set( BOOST_ROOT "/path/to/boost/install/prefix" )
FIND_PACKAGE(Boost 1.4 COMPONENTS mpi serialization REQUIRED)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(test ${Boost_LIBRARIES})