在cmake中设置最小版本的boost

tun*_*2fs 17 c++ boost cmake

我想定义一个在系统上可用的最小升压版本.我尝试了以下方法.不幸的是,这不起作用,因为它试图编译也只有系统上可用的boost 1.40.0.

SET(Boost_USE_STATIC_LIBS OFF)
SET(Boost_USE_MULTITHREAD OFF)
SET(BOOST_MIN_VERSION "1.47.0")

FIND_PACKAGE(Boost REQUIRED)

FIND_PACKAGE(Boost REQUIRED)
if (NOT Boost_FOUND)
      message(FATAL_ERROR "Fatal error: Boost (version >= 1.47.0) required.\n")
endif (NOT Boost_FOUND)

INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
Run Code Online (Sandbox Code Playgroud)

在编译之前,我是如何让cmake控制正确的boost版本的?

Joh*_*mer 15

基于,似乎FIND_PACKAGE忽略了SET(BOOST_MIN_VERSION "1.47.0")你可以使用FIND_PACKAGE(Boost 1.47.0 REQUIRED)或稍微更好FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED)

  • @ tune2fs这仅适用于次要版本.如果你有升级2.0(假设存在这样的事情),那么就无法找到它. (3认同)