缺少有关Boost (.lib文件)的细节

4
当我使用一些Boost库时,我在哪里可以找到用于链接程序的lib文件? 决定尝试其线程功能,但是我遇到了以下问题:
错误6 致命错误LNK1104:无法打开文件'libboost_thread-vc90-mt-gd-1_42.lib' InterviewPractice 在我包含以下内容后:
错误6 致命错误LNK1104:无法打开文件'libboost_thread-vc90-mt-gd-1_42.lib' InterviewPractice 我找不到在Boost网站上获取适当链接的.lib文件的位置? 有什么提示吗? :)

你有没有阅读过 http://www.boost.org/doc/libs/1_55_0/more/getting_started/index.html? - Éric Malenfant
6个回答

6

谢谢提供信息。我最好安排一些时间来构建所有这些库。哈哈,我打赌这会花费一些时间。 - bobber205
2
@bobber205:获取预构建的软件包,并安排一些时间来弄清楚如何构建整个boost分发。在Windows下第一次构建可能需要几天时间。预构建的软件包可以让您快速启动并运行。 - D.Shawley
1
需要一点时间,但几天?你在干什么?:D - KTC
1
@D.Shawley:哎呀,几天?我只记得那只花了几个小时,可能吧。 - GManNickG
@D.Shawley 即使在我那台已经十年老旧的笔记本电脑上,构建这些库只需要最多几个小时。 - anon
是的,但对于像我这样从未使用过命令提示符的人来说,它很复杂。这就是为什么需要整整一天的原因:需要在互联网上进行大量研究。 - Leonard Inkret

2
我使用的另一种解决方案是创建自己的包装项目,其中包含您正在使用的boost部分。在VS.Net中,通常只需添加boost/libs/blah子目录中的cpp文件即可。它们编译非常干净,因此通常不需要进行任何其他设置。如果您想要从SCM自动构建,则会发现这种技术非常有用,并且您不想检入二进制文件。它也非常快,因为您只构建所需的部分。另一个优点是更容易创建与您的项目相关的配置,例如Debug / Release、静态/动态、32/64位。但要注意的是,在构建项目时需要通过定义BOOST_ALL_NO_LIB来禁用自动链接选项。
或者,您需要使用jam工具为所需的配置构建原始库。

1
与此同时,boost发行版提供的bcp工具将仅复制所需的boost包含文件。如果您不希望在软件配置管理中包含全部boost内容,这会很有帮助。 - KeithB
有用的提示--我以前不知道那个工具。 - the_mandrill

1

.lib文件通常嵌套在名为stage的文件夹下,因此您可能需要在项目属性的Additional Library Directories部分中将boost/lib替换为boost/stage/lib本教程的第6节和6.1节描述了此过程,但未包括Boost的stage文件夹。

您还可以进行文件搜索以获取破损的.lib文件的位置。


谢谢!我成功构建了它们,但不知道它们在哪里,是的,现在我在“stage\lib”文件夹中找到了它们! - Leonard Inkret

0
这完全取决于您使用的操作系统/编译器。
我建议您下载 Boost 源代码并学习如何构建 Boost。

0

这个问题是由于 Boost 安装默认不安装线程库引起的。您必须在安装期间明确选择线程库。因此,重新运行安装程序并选择线程库以及选择您的编译器版本以下载适当的文件。在这种情况下,“'libboost_thread-vc90-mt-gd-1_42.lib”文件需要选择 VC++ 编译器 9.0 调试版的多线程和 Boost 库版本 1.42。

我希望这可以帮到您...


0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接