C ++ boost nuget无法打开文件Visual Studio 2015

Posted

技术标签:

【中文标题】C ++ boost nuget无法打开文件Visual Studio 2015【英文标题】:C++ boost nuget cannot open file Visual Studio 2015 【发布时间】:2017-12-02 16:32:13 【问题描述】:

我正在制作一个 C++ 项目(对 C++ 来说非常新),它需要所谓的“boost”库。我想我可以添加一个金块来让我的生活更轻松......(添加了#include <boost\date_time.hpp>)但现在我收到了这个错误

错误 LNK1104 无法打开文件 'libboost_date_time-vc141-mt-gd-1_65_1.lib'

有什么问题?

【问题讨论】:

你知道,由于荒谬的磁盘空间要求,我从来没有让它工作过。 【参考方案1】:

错误 LNK1104 无法打开文件 'libboost_date_time-vc141-mt-gd-1_65_1.lib'

根据错误,您应该将libboost_date_time-vc141-mt-gd-1_65_1.lib库目录添加到您的项目配置中。这个 .lib 包含在 NuGet 包 boost_date_time-vc140boost_date_time-vc141 中。

由于您使用的是 Visual Studio 2015,您只需将 NuGet 包 boost_date_time-vc140 安装到您的项目中,NuGet 会自动将 libboost_date_time-vc141-mt-gd-1_65_1.lib 库目录添加到您的项目配置中。安装完成后,该错误将得到解决。

此外,由于您在 Visual Studio 2015 中使用 boost 库,我建议您可以使用包含许多依赖项的 boost-vc140。所以你不需要手动添加它们。

希望这会有所帮助。

【讨论】:

【参考方案2】:

您需要将 boost 库目录添加到您的项目配置中,进入项目菜单,然后进入属性。

在属性树中进入“VC++ 目录”并在库目录中添加 \lib64-msvc-12.0(将 64 更改为 32 以用于 32 位构建)。

我建议你通过view->other windows->property manager来做这个,以后所有的项目也会设置的。

【讨论】:

我什至找不到我的 \lib64-msvc-12.0 文件的位置...在我的包文件夹中我有 \packages\boost.1.65.1.0\lib\native\include\boost 【参考方案3】:

出现链接错误的原因是您安装了仅标头的 NuGet“Boost”包。然而,由于一个不幸的设计决定,这个仅包含头文件的包还包含 not 仅包含头文件的 Boost 库的头文件,例如 datetime。使用更好的设计,您会更早(在编译时)得到错误。

“Boost.vc120”和“Boost.vc140”包包含仅头文件库和常规编译库;它们之间的区别在于使用的编译器。

【讨论】:

以上是关于C ++ boost nuget无法打开文件Visual Studio 2015的主要内容,如果未能解决你的问题,请参考以下文章

vs配置PCL无法打开BOOST源文件怎么办

错误:C1083:无法打开包含文件:'boost/asio.hpp':没有这样的文件或目录

致命错误 C1083:无法打开包含文件:'boost/regex.hpp':没有这样的文件或目录

致命错误 C1083:无法打开包含文件:'boost/config.hpp':没有这样的文件或目录

LNK1104:无法打开文件'mfc90.lib“

Nuget安装程序包源