如何在 boost 1.57 中安装 boost 模块(应用程序和 dll)

How to install boost modules in boost 1.57 (application and dll)

我要安装:

我正在按照 Boost.DLL 的指示进行操作,其中说:

测试失败:

F:\P\thridparty\boost\boost/function/function_template.hpp(767) : error C2664: 'int (boost::detail::function::function_buffer &,T0)' : cannot conv parameter 2 from 'std::string' to 'std::basic_string<_Elem,_Traits,_Alloc> '

(我也试图将 include/boost/* 复制到 /boost/*)

据我所知,测试已通过...

但是当我尝试使用它时我找不到它...即使使用 cmake

find_package( Boost 1.57 COMPONENTS system filesystem dll application REQUIRED )

我得到:

Could not find the following Boost libraries:

      boost_dll
      boost_application

那么安装这些模块的正确方法是什么?

Boost::Application和Boost::DLL不是Boost的一部分,所以Cmake找不到。

到目前为止我没有深入研究 Boost::DLL,但是 Boost::Application 可以通过简单的 clone/submodule 用于您的项目。它是 header 唯一的库,因此不需要 build/install。

可以找到示例项目 on github

在我的例子中,它是 /hdr/application 的 git 子模块。

有两种方法:

  • 如果您想使用现有的 boost 安装,那么,由于库只有 header,您只需将目录 "include/boost" 的内容复制到您的 include 文件夹中提升安装,例如。

copy "Boost.Application/include/boost/*" to "boost_installation_dir/boost/"

  • 如果你想构建 boost 和 运行 测试等,你需要将它们复制到你的 boost 源的 libs 目录中(不是你的 boost 安装),所以有一个 boost/libs/application 和一个"boost/libs/dll",例如:

copy "application" to "boost_src_dir/libs"

然后像往常一样在您的平台上构建和安装 boost(遵循 getting started

无论哪种方式:您不必在您的 cmake 文件中执行 find_package,因为这两个库仅是 header,只需将 header 包含在您的源代码中即可文件。

至于测试:它们对我也不起作用,但实际上您不需要它们来使用库..