【问题标题】:Boost 1.66.0 : could not find boost libraries :boost_system, boost_filesystem,boost_thread,boost_date_timeBoost 1.66.0:找不到 boost 库:boost_system、boost_filesystem、boost_thread、boost_date_time
【发布时间】:2023-03-26 19:18:01
【问题描述】:

我的配置是:

  • 操作系统:Windows 10 x64
  • 提升:1.66.0
  • CMake:3.10
  • Visual Studio:2017 年

我是这样编译 boost 的:

bootstrap 
.\b2 --build-dir=build toolset=msvc address-model=64 --build-type=complete stage

运行 CMake 时出现此错误:

could not find boost libraries: 
boost_system
boost_filesystem
boost_thread
boost_locale
boost_date_time

我搜索这些库,它们位于舞台文件夹中。 我尝试了BOOST_USE_STATIC_LIBS=ON,但没有任何反应。

【问题讨论】:

标签: c++ windows boost cmake


【解决方案1】:

Boost 库的命名方案在 1.66.0 版本中发生了变化。添加了一个额外的架构中缀,您正在使用的 CMake 版本 3.10 的 FindBoost.cmake 不知道该中缀。尝试使用 1.65.1 版本并将 BOOST_ROOT 设置为 Boost 安装路径。

【讨论】:

  • 我尝试使用版本 1.65.1 但我无法编译 boost 库:未知编译器版本
  • @Ammoun 首先尝试使用来自sourceforge.net/projects/boost/files/boost-binaries/1.65.1的预构建二进制文件
  • Visual Studio 2017的编译器版本是14.1所以需要获取文件boost_1_65_1-msvc-14.1-64.exe
  • 但是对于预构建的二进制文件,我必须输入这个命令:.\b2 --build-dir=build toolset=msvc address-model=64 --build-type=complete lib64-msvc-14.1跨度>
  • @Ammoun 不,这是 Boost 的构建步骤。您只需在 CMakeLists.txt 中调用 find_package 并在命令行之前或命令行中设置 BOOST_ROOT。
【解决方案2】:

在运行 cmake 之前尝试手动设置 BOOST_INCLUDEDIRBOOST_LIBRARYDIR,例如

set BOOST_INCLUDEDIR=C:\boost\src\boost_1_59_0
set BOOST_LIBRARYDIR=C:\boost\boost_1_59_0-bin-msvc-all-32-64\boost_1_59_0\lib32-msvc-14.0

FindBoost

【讨论】:

猜你喜欢
  • 2014-06-02
  • 2019-06-20
  • 1970-01-01
  • 2014-04-22
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
相关资源
最近更新 更多