CMake同时发现和未发现增强

时间:2018-08-21 18:12:07

标签: boost cmake

我正在尝试安装https://www.programcreek.com/java-api-examples/index.php?api=com.ibatis.common.jdbc.ScriptRunner并遵循Windows的安装指南。

在步骤cmake-gui.exe中,我的cmake找不到安装的Boost。

ismrmrd添加到CMakeLists.txt后,结果变得很有趣。

those lines

有什么想法吗?


UPDATE 8/21

感谢CMake error screen shotvre

现在我更改为提高1.66,但仍然没有运气。

新的屏幕截图显示FindBoost现在没有抱怨。 但是仍然没有发现任何提振。 user1234567


UPDATE 8/22

添加后

cmake_policy(SET CMP0074 NEW)

new screenshot的建议将

set(Boost_USE_STATIC_LIBS ON) set(Boost_USE_MULTITHREADED ON) find_package(Boost REQUIRED system filesystem) include_directories(${Boost_INCLUDE_DIRS}) target_link_libraries(ismrmrd ${Boost_LIBRARIES})改成CMakeLists.txt

产生的错误成为此屏幕截图 vre

1 个答案:

答案 0 :(得分:1)

由于渴望评论,我尝试提出一个食谱:

仅使用Boost标头/静态库所需的命令是:

set(Boost_ADDITIONAL_VERSIONS 1.66.0 1.66)
set(BOOST_ROOT "C:/local/boost_1_66_0")
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)

仅使用标头库仅使用

find_package(Boost)

否则,在COMPONENTS关键字之后命名要使用的组件(库)并使用

find_package(Boost COMPONENTS <e.g. filesystem system ...>)

if (Boost_FOUND)
  include_directories(${Boost_INCLUDE_DIRS})
  add_definitions( "-DHAS_BOOST" )
endif()

稍后在调用中仅引用Header Boost引用导入的目标(库)

target_link_libraries(yourproject Boost::boost)

或在调用中用于命名库组件

target_link_libraries(yourproject ${Boost_LIBRARIES})

在对有关Boost和Boost组件的CMakeLists.txt进行更改时,请务必始终删除构建目录中的CMakeCache.txt文件,因为它可能会缓存以前的CMake运行的值。