【发布时间】:2011-12-26 00:47:13
【问题描述】:
我正在尝试使用 CMake 脚本在 Windows 上编译基于 Boost 的应用程序。
仅标头库工作正常,但 CMake 找不到库(找不到以下 Boost 库:boost_serialization)。 CMake 脚本的相关部分是:
# Path where CMake can find additional libraries
SET(CMAKE_PREFIX_PATH Libs)
# Boost
SET(Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0")
SET(Boost_USE_STATIC_LIBS ON)
find_package(Boost REQUIRED COMPONENTS serialization)
我的项目中有一个名为“Libs”的文件夹,其中存储了 DevIL 和 Boost 等第三方库,所以我先设置了这个。它适用于 Devil 和 Boost 仅标头的东西,所以我认为我不需要 BOOST_ROOT 变量。
Boost 安装是来自 boost.org 的标准源代码分发,我使用 BJam 编译。这些库存储在boost_1_47_0\bin.v2\libs,我在构建过程中没有更改任何内容。
我认为这有点奇怪,boost_1_47_0\libs 文件夹不包含任何库文件,但 BJam 文件和其他东西,但这应该不是问题,因为这似乎是构建 Boost 的正常方式从源代码在 Windows 上。
我查看了 FindBoost.cmake 文件的调试输出(我使用的是 CMake 2.8 中的默认脚本),但它似乎没有查看 bin.v2。相反,它搜索boost_ROOT/lib,但是当我将内容从bin.v2\libs 复制到lib 时,它仍然没有找到任何东西。
那么,找到 Boost 并在其他具有常见 Boost 发行版的平台上工作的优雅方法是什么?
【问题讨论】: