如何使用cmake安装de b2命令行 我有一个使用Boost函数的C++代码。我想针对我的二进制文件安装boost和link。但是boost存储库没有cmake文件,我不能将此存储库用作子模块。我可以使用cmake安装boost。但总而言之,我有b2命令行。我知道b2命令行是一个python包

如何使用cmake安装de b2命令行 我有一个使用Boost函数的C++代码。我想针对我的二进制文件安装boost和link。但是boost存储库没有cmake文件,我不能将此存储库用作子模块。我可以使用cmake安装boost。但总而言之,我有b2命令行。我知道b2命令行是一个python包,python,boost,cmake,Python,Boost,Cmake,我的问题:可以使用cmake文件下载这个python包吗 编辑: 我现在知道如何使用b2命令安装de boost。但是,我只想安装文件系统库。boost目录有很多我不需要的内容。我有这个cmake文件,但我不知道如何仔细编辑以归档我的目标。我在stackoverflow中看到一个帖子,我可以这样做: b2 tools/bcp mkdir/tmp/interprocess bcp interprocess /tmp/interprocess 但我不知道如何在cmake文件中创建这个命令行 cm

我的问题:可以使用cmake文件下载这个python包吗

编辑:

我现在知道如何使用b2命令安装de boost。但是,我只想安装文件系统库。boost目录有很多我不需要的内容。我有这个cmake文件,但我不知道如何仔细编辑以归档我的目标。我在stackoverflow中看到一个帖子,我可以这样做:

b2 tools/bcp
mkdir/tmp/interprocess

bcp interprocess /tmp/interprocess
但我不知道如何在cmake文件中创建这个命令行

cmake_minimum_required(VERSION 2.8)

include(ExternalProject)

# Download boost from git

SET (BOOST_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/boost/src/boost/lib/filesystem/include/boost/)
SET (BOOST_URL https://github.com/google/re2.git)
SET (BOOST_BUILD ${CMAKE_BINARY_DIR}/boost/src/boost)  
get_filename_component(BOOST_STATIC_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib/libboost_filesystem.a ABSOLUTE)  
SET (BOOST_INCLUDES ${RE2_BUILD})

if ( UNIX )
    SET (BOOST_STATIC_LIBRARIES ${BOOST_BUILD}/libboost_filesystem.a)
endif ()

ExternalProject_Add(
boost
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/boost
GIT_REPOSITORY https://github.com/boostorg/boost.git
UPDATE_COMMAND ./bootstrap.sh --with-libraries=filesystem
CONFIGURE_COMMAND ""
BUILD_COMMAND ./b2 tools/bcp link=static install --prefix=${CMAKE_CURRENT_BINARY_DIR}/
BUILD_IN_SOURCE 1
INSTALL_COMMAND ""
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR/include/boost
})

set(Boost_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/include/boost)

set(Boost_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib/ibboost_filesystem.a)
我的cmake文件

cmake_minimum_required(VERSION 2.8)

include(ExternalProject)

# Download boost from git

SET (BOOST_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/boost/src/boost/lib/filesystem/include/boost/)
SET (BOOST_URL https://github.com/google/re2.git)
SET (BOOST_BUILD ${CMAKE_BINARY_DIR}/boost/src/boost)  
get_filename_component(BOOST_STATIC_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib/libboost_filesystem.a ABSOLUTE)  
SET (BOOST_INCLUDES ${RE2_BUILD})

if ( UNIX )
    SET (BOOST_STATIC_LIBRARIES ${BOOST_BUILD}/libboost_filesystem.a)
endif ()

ExternalProject_Add(
boost
PREFIX ${CMAKE_CURRENT_BINARY_DIR}/boost
GIT_REPOSITORY https://github.com/boostorg/boost.git
UPDATE_COMMAND ./bootstrap.sh --with-libraries=filesystem
CONFIGURE_COMMAND ""
BUILD_COMMAND ./b2 tools/bcp link=static install --prefix=${CMAKE_CURRENT_BINARY_DIR}/
BUILD_IN_SOURCE 1
INSTALL_COMMAND ""
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR/include/boost
})

set(Boost_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/include/boost)

set(Boost_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/lib/ibboost_filesystem.a)
编辑

伙计们,我想通过使用git子模块来实现这一点。 我想使用boost使用子模块。但是boost有很多子模块,我只想从boost中获得boost.filesystem所必需的子模块

但是,当我在项目中使用boost作为子模块并尝试在cmake文件中包含boost目录时,会发生以下错误:

CMake Error at CMakeLists.txt:16 (add_subdirectory):
 The source directory
/home/lais/testeBoost/lib/boost
does not contain a CMakeLists.txt file.

ExternalProject\u add
可以处理自定义配置、生成和安装命令。只需定义configure以使用
bootstrap
命令(构建b2)和build命令以使用
b2
命令。好的,b2不需要python。好的,谢谢你的帮助。我想这是对的。还有一个疑问:是否可以指定我要克隆boost中的哪个子模块?因为我只会使用filesystem.a(静态库),克隆所有东西、构建和安装需要很长时间。下载源代码tarball,构建
bcp
工具,使用
bcp
提取文件系统及其依赖项,并使用
bootstrap
b2
仅构建和安装它们。我编辑了我的问题。