4

我正在尝试使用 CMake 构建我的项目。我也在使用boost。我的 CMakeLists.txt 文件中的 find package 语句是:

find_package(Boost 1.42 所需组件

Python

系统

文件系统

序列化

线

程序选项

正则表达式

test_exec_monitor )

构建失败,我得到的错误消息是:找不到以下 Boost 库:

      boost_system
      boost_filesystem
      boost_serialization
      boost_thread
      boost_program_options

当我检查我的 lib 目录时,我发现这些库的名称是:libboost< library_name >-vc100-mt.lib 而不是 boost_< Library_name >

事实上,当我根据 boost_<LibraryName> 前缀重命名我的 lib 文件中的单个库时,它不会抱怨该库。

我看到了 2 个相同的解决方案:

1.在 CMakeLists.txt 文件中进行更改,以便它搜索具有正确前缀(和后缀)的库。

2.其他

什么可能是最好的。

4

1 回答 1

6

来自FindBoost.cmake

最后三个变量也可用作环境变量:另外,请注意它们完全大写,除了 Boost_DIR。

Boost_DIR 或 搜索 BOOST_ROOTBOOSTROOT Boost 的首选安装前缀。如果模块在找到正确的 Boost 安装时遇到问题,请设置此项。

使用这些变量指向安装了 boost 库的文件夹。例如

cmake .. -DBOOST_ROOT=C:/Boost

于 2013-01-15T06:30:03.470 回答