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

C++ 如何在boost 1.57(应用程序和dll)中安装boost模块,c++,boost,cmake,C++,Boost,Cmake,我想安装: 我遵循Boost.DLL中的指令,其中说: 克隆Boost.DLLrepository:git克隆https://github.com/apolukhin/Boost.DLL dll 进入dll/test文件夹并运行/b2:cd-dll/test;..//b2 测试失败,原因是: F:\p\thridparty\boost\boost/function/function\u template.hpp(767): 错误C2664:“int(boost::detail::fu

我想安装:

我遵循Boost.DLL中的指令,其中说:

  • 克隆
    Boost.DLL
    repository:
    git克隆https://github.com/apolukhin/Boost.DLL dll
  • 进入
    dll/test
    文件夹并运行
    /b2
    cd-dll/test;..//b2
测试失败,原因是:

F:\p\thridparty\boost\boost/function/function\u template.hpp(767): 错误C2664:“int(boost::detail::function::function_buffer&,T0)”: 无法将参数2从“std::string”转换为 'std::basic_string'

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

就我所知,测试通过了

但是当我尝试使用它时,我找不到它。。。即使有了cmake

find_package( Boost 1.57 COMPONENTS system filesystem dll application REQUIRED )
我得到:

找不到以下Boost库:

      boost_dll
      boost_application

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

Boost::Application和Boost::DLL不是Boost的一部分,因此Cmake无法找到它们

到目前为止,我并没有深入研究Boost::DLL,但Boost::应用程序可以由项目中的简单克隆/子模块使用。它是只包含头的库,因此不需要构建/安装

可以找到示例项目


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

Boost::application和Boost::DLL不是Boost的一部分,因此Cmake无法找到它们

到目前为止,我并没有深入研究Boost::DLL,但Boost::应用程序可以由项目中的简单克隆/子模块使用。它是只包含头的库,因此不需要构建/安装

可以找到示例项目

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

有两种方法:

  • 如果您想使用现有的boost安装,那么,由于库仅为标题,您只需要将目录“include/boost”的内容复制到boost安装的include文件夹中,例如
将“Boost.Application/include/Boost/*”复制到“Boost\u installation\u dir/Boost/”

  • 如果您想构建boost并运行测试等,则需要将它们复制到boost源(而不是boost安装)的libs目录中,因此有一个boost/libs/application和一个“boost/libs/dll”,例如:
将“应用程序”复制到“boost\u src\u dir/libs”

然后,您可以像通常在平台上一样构建和安装boost(遵循以下步骤)

无论哪种方式:您都不必在cmake文件中执行find_包,因为这两个LIB只是头文件,只需将头文件包含在源文件中即可

至于测试:它们对我也不起作用,但实际上使用libs并不需要它们。

有两种方法:

  • 如果您想使用现有的boost安装,那么,由于库仅为标题,您只需要将目录“include/boost”的内容复制到boost安装的include文件夹中,例如
将“Boost.Application/include/Boost/*”复制到“Boost\u installation\u dir/Boost/”

  • 如果您想构建boost并运行测试等,则需要将它们复制到boost源(而不是boost安装)的libs目录中,因此有一个boost/libs/application和一个“boost/libs/dll”,例如:
将“应用程序”复制到“boost\u src\u dir/libs”

然后,您可以像通常在平台上一样构建和安装boost(遵循以下步骤)

无论哪种方式:您都不必在cmake文件中执行find_包,因为这两个LIB只是头文件,只需将头文件包含在源文件中即可


至于测试:它们对我也不起作用,但使用libs实际上并不需要它们。

这对我来说似乎是一个很好的例子,谢谢!我现在就试试。这对我来说是个很好的例子,谢谢!我现在就去试试。