由nuget驱动的vc ++ vs2013代码不构建

时间:2014-10-22 19:31:06

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

我是VC ++和Boost的新手。 我的问题是我想在我的VC ++ Visual Studio 2013项目中使用Boost 1.56.0(所以我使用vc120)。

我已经通过NuGet(https://www.nuget.org/packages/boost/)安装了Boost。一切似乎都没问题,但是当我尝试构建我的项目时,它说:

  

致命错误LNK1104:无法打开文件" libboost_thread-vc120-mt-gd-1_56.lib"。

您知道问题的确切位置以及我如何解决问题吗?

我认为使用NuGet安装软件包将完成整个工作以使其自行运行。 我知道链接器无法找到lib文件(实际上根本没有构建过程)。但我不知道如何解决这个问题。

我认为用VC120手动编译Boost并将lib文件夹添加到链接器的其他路径并不是一个好主意。那我为什么要使用NuGet呢?

欢迎任何帮助 - 我正在尝试和搜索互联网这么多个小时,我无法解决问题。

谢谢你, 斯蒂芬

4 个答案:

答案 0 :(得分:6)

如前所述,Boost Nuget不能包含所有可能的配置和编译器版本的所有可能的编译库。但是,有separete预编译的Nuget包和源包。以下是所有1.56.0 Boost Nuget包https://getboost.codeplex.com/releases/view/126256

的列表

在您的情况下,我建议使用预编译的boost_thread-vc120.1.56.0。还不是1.57!

如果你很懒,也可以使用boost-vc120.1.56.0,这取决于Visual Studio 2013的所有预编译的Boost库。

答案 1 :(得分:2)

似乎最新版本的NuGet for boost并不包含每个lib和dll文件包(source)。

您应该完全安装boost_thread

答案 2 :(得分:2)

BlueGo是一个使用Visual Studio 2010/12/13构建Boost的工具。您只需启动应用程序,选择您的配置并点击“构建”按钮 - 其他所有内容都会自动运行。

BlueGo

可以在此处下载:https://bitbucket.org/Vertexwahn/bluego

答案 3 :(得分:0)

由于Boost的NuGet数据包不再包含lib文件,因为程序包越来越大,我决定自己构建Boost。

我按照这个说明操作:Build Boost for Visual Studio - 也读了第二篇文章!

我看到它太晚了但也许对其他人有帮助: There are pre-build Boost installer! 在这里,您可以下载一个安装程序,它将为32/64位安装Boost(特定版本)(取决于您选择的文件)。还有不同的版本(vc100,vc110,vc120)可用。

使用NuGet时的问题是,您有

  1. 安装Boost包(以获取源文件)
  2. 安装lib文件(参见link提供的Marco A.)
  3. 这可能非常麻烦,因为并非所有的Boost库都可用。例如。 ASIO的lib文件丢失了。因此,如果您需要它们,您必须自己再次编译它。因此,您使用NuGet包和自编译的升级库来搞乱您的项目。如果NuGet提供您需要的一切,我将使用NuGet方式。

    最后,正如我所说,我需要ASIO lib,因此我终于自己编译了Boost。使用NuGet包似乎很容易。

    谢谢大家的帮助。