【问题标题】:VS2013 Boost using NuGetVS2013 使用 NuGet 提升
【发布时间】:2015-04-29 19:23:52
【问题描述】:

我几天来一直在努力提高使用我的 Visual Studio 2013 Premium 安装的能力。我尝试使用 zip 安装,现在使用 NuGet。这两种方法都让我遇到了链接器错误。

错误:1>LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-gd-1_57.lib'

我查看了 boost 的邮件列表,发现有人发布了类似的问题,但那是从 2012 年开始使用 boost_1_54_0 之类的,因此与 VS2013 或 boost 1_58_0 完全无关。

我还查看了一些论坛帖子,包括 SO,但没有一个与我遇到的问题相同。要么,要么他们根本没有回复。

我无法真正辨别错误显示的任何标志,因为这是我第一次使用除 STL 库或我自己的标头之外的任何东西。

我们将不胜感激,如果有任何其他有用的信息,请告诉我。

【问题讨论】:

    标签: c++ boost visual-studio-2013 nuget


    【解决方案1】:

    我怀疑您安装了名为“boost”的 NuGet 包。这似乎包含所有 Boost 头文件,但没有编译库。如果您只对仅使用标头的 Boost 库(即它们中的大多数)感兴趣,那很好。

    您真正想要的是名为“boost-vc120”的软件包(vc120 指的是 VC++ 12.0,它是 VS2013 附带的 VC++ 版本)。这也有所有的图书馆。您会注意到安装需要更长的时间。

    无论哪种情况,NuGet 都会负责设置所有必要的 VC++ 目录设置。无需进一步配置。

    【讨论】:

    • 我刚刚安装了 boost-vc120 包,它似乎可以工作。我最初避免使用它是因为我误读了描述并认为我看到了“Windows XP”。我当前的解决方案中同时具有 boost 和 boost-vc120 软件包。如果我取消常规提升,这会影响什么吗?
    • @user3857017 - 删除 boost 应该没有效果,但如果有效果,您也可以随时删除 boost-vc120,然后重新安装。
    • 好的。我只是问,因为 boost 是一个相当大的包,可以无缘无故地坐在那里。
    【解决方案2】:

    Boost NuGet 包的结构是here。您可以使用boost-vc120,但它会将所有 boost 库下载到您的项目中。因此,如果您想节省磁盘空间,请使用boost 包,它为您提供头文件和特定的二进制包。在你的情况下,它是boost_system-vc120

    你不能删除 boost 包,因为二进制包,例如 boost-vc120/boost_system-vc120,依赖于它。

    【讨论】:

    • boost-vc120 将下载所有 boost 库,但它只会链接您在项目中实际使用的库。 Boost 利用其头文件中的 VC++ #pragma comment(lib) 指令来指定需要链接的库。
    【解决方案3】:

    文件libboost_system-vc120-mt-gd-1_57.lib 是否存在于您的硬盘上?

    如果是,您是否将 .lib 添加到链接器/输入/附加依赖项?

    【讨论】:

    • 我从没想过去看那里,只是去上课了,但是等我回来我会检查的。我目前只是使用任何 NuGet 设置并通过 boost 安装。
    • 库文件名不需要添加到该列表中。在 MSVC 上,boost 标头使用 #pragma comment(lib, "...") 指令自动指定库名称。重要的是将包含所有 boost .lib 文件的 目录 添加到 Linker -> General -> Additional Library Directories
    • 我没能找到该文件,但我确实通过另一个回复中的另一个 boost 包让它工作了。不过谢谢!
    【解决方案4】:

    转到以下网页:

    https://github.com/sergey-shandar/getboost

    从那里您可以找到“用于 Boost 的 NuGet 包”。有多个链接。

    如果您选择第一个链接 - 您将进入 boost-includes nuget-package 指示。基本上你需要在 Visual Studio 中打开包管理器,选择正确的项目,然后输入命令“Install-Package boost -Version 1.69.0”——它将启用 boost 包括自动下载到“packages”文件夹。

    通过点击其他链接,您可以获得特定 Visual Studio 的 boost 静态库 - 关注“boost-vc141”以获取 Visual Studio 2017 静态库。

    那个boost包会得到很多boost库——如果你不需要全部的话——制作临时项目,获取boost静态库,自己复制粘贴你需要的库。

    【讨论】:

      猜你喜欢
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 2017-07-22
      相关资源
      最近更新 更多