缺少关于Boost的详细信息(.lib文件)

时间:2010-05-05 18:41:28

标签: c++ boost linker

在使用某些Boost库时,在哪里可以找到用于链接程序的lib文件? 决定尝试其线程功能,但我正在

  

错误6致命错误LNK1104:不能   打开文件   'libboost_thread-vc90-mt-gd-1_42.lib'InviewviewPractice

包括

之后
  

错误6致命错误LNK1104:不能   打开文件   'libboost_thread-vc90-mt-gd-1_42.lib'InviewviewPractice

我无法找到哪里获取.lib文件以便在boost网站上正确链接? 有小费吗? :)

6 个答案:

答案 0 :(得分:6)

需要构建一些Boost库(例如,使用OS特定功能的库)。您可以build them yourself或下载pre-built package

答案 1 :(得分:2)

我使用的替代解决方案是创建您自己的包装器项目,其中包含您正在使用的boost。通常在VS.Net中,这只是添加boost/libs/blah子目录中的cpp文件的问题。它们编译得非常干净,因此您通常不需要对项目进行任何其他设置。如果您想要从SCM自动化构建并且您不想签入二进制文件,我发现这种技术很有用。它也非常快,因为你只需要构建你需要的位。另一个优点是,创建与项目相关的配置更容易,即调试/发布,静态/动态,32/64位。但有一点需要通过在构建项目时定义BOOST_ALL_NO_LIB来禁用自动链接选项。

或者,您需要使用jam工具为您需要的配置构建原始库。

答案 2 :(得分:0)

这完全取决于您正在使用的操作系统/编译器。

我建议你下载boost源代码并学习如何构建Boost。

答案 3 :(得分:0)

导致此问题的原因是Boost安装默认情况下不安装线程库。您必须在安装期间专门选择线程库。因此,重新运行安装并选择线程库并选择编译器版本以下载相应的文件。在本例中,对于文件“'libboost_thread-vc90-mt-gd-1_42.lib”,您需要为升级库版本1.42选择版本VC ++编译器9.0调试的多线程。

我希望这会有所帮助......

答案 4 :(得分:0)

我使用boost版本1.44和预构建的安装程序遇到了相同的链接错误。我解压缩了“libboost_data_time_vc100-mt-gd-144.zip”,其中只包含缺少的.lib,这似乎解决了这个问题。

答案 5 :(得分:0)

.lib个文件通常嵌套在名为stage的文件夹下,因此您可能需要在其他库目录中将boost/lib替换为boost/stage/lib 项目属性下的部分。 this tutorial的第6节和第6.1节描述了此过程,但不包括Boost的stage文件夹。

您还可以为损坏的.lib文件执行file search以了解该位置。