Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cmake:将软件链接到boost::mpi(使用mpich2)_Cmake_Mpi_Boost Mpi - Fatal编程技术网

cmake:将软件链接到boost::mpi(使用mpich2)

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

对于此简单代码(取自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 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})