致命错误 LNK1104:无法打开文件“libboost_system-vc90-mt-gd-1_43.lib”

21

新建了一个项目,添加了 main.cpp 文件,并在以下 URL 中编写了代码:

http://www.boost.org/doc/libs/1_43_0/doc/html/boost_asio/example/echo/async_tcp_echo_server.cpp

同时,添加了适当的 include 路径。

接下来该怎么做呢?似乎构建 boost 代码是一个可恶的谜题!

已经耗费了超过 10 小时的时间来研究它。

有人能够给出一个简单明了的答案,说明如何在 Windows 平台上通过 VC9 构建 boost 库的代码吗?

7个回答

18
您需要使用bjam。它负责创建您的应用程序将使用的库。一旦您使用了bjam,您需要指示项目包含lib文件。您可以通过进入项目属性->配置属性->链接器->常规来完成此操作。将创建lib文件的目录添加到附加库目录中。之后,您应该能够正确地进行链接。 我认为此链接比我在帖子中尝试描述的步骤更好。

我所要做的就是将C:\Boost\x86\lib添加到上述提到的附加库目录中。 - Brent
4
应该将 1.5 版本的 Boost 根目录下的 stage\lib 目录添加进去。 - Siarhei Kuchuk

16

@bogertron: 我想拥抱你! (:

最终,我头痛了很久,终于做到了。

以下是我采取的确切步骤,以便其他人不必头疼:

  1. 前往http://www.boost.org/doc/libs/1_43_0/more/getting_started/windows.html#or-build-binaries-from-source

  2. 按照“5.3.1获取bjam”条款。在此网址下载“针对您的平台的预编译bjam可执行文件”:http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941

  3. 解压缩ZIP文件(我的平台是Windows)。

  4. 运行“build.bat”。它会生成文件“bin.ntx86/bjam.exe”。

  5. 将此文件复制到我的路径(“...... /boost_1_43_0/”)。

  6. 从命令行执行“bjam.exe”,等待大约4-5分钟。

然后,在控制台上得到这条消息:“已成功构建Boost C++库!”

就是这样,它甚至会告诉您include和lib文件在哪里。


9
并非所有的Boost库都是仅限于头文件的,Boost.System就是其中之一。Boost.Asio的文档告诉你它依赖于Boost.System。
在使用Visual Studio时,Boost库使用自动链接,这意味着您不必显式地链接所需的库。但是,您需要在库搜索路径中全局或项目级别地拥有必要的库。
如果您不想自己构建Boost库,则可以使用boostpro提供的安装程序(目前只支持Boost 1.42)。如果您想自己构建它们,文档已经很好地涵盖了这个问题。

1
我遇到了同样的错误,然后我按照SourceForge的指示操作。该链接将带您进入一个压缩的lib和dll文件夹,其中包含boost的版本。您可以下载并解压相关库,然后将其复制到相关位置,一切都会很好;)

0

来自“Boost入门指南”:

“5.2 或者,简化的源代码构建

如果您希望使用Visual C++从源代码构建,可以使用本节中描述的简单构建过程。打开命令提示符并将当前目录更改为Boost根目录。然后,输入以下命令:

bootstrap .\b2"

在Windows上,我从开始菜单中打开了Visual Studio命令行。首先我输入了“bootstrap”,然后我输入了“. \ b2”。

0
在Visual Studio中,右键单击您的项目,然后转到属性并选择:

属性-> 配置属性-> 链接器

在名为“附加库目录”的选项卡中添加您的库的完整路径。

-1

现在,boost_1.50版本中已经包含了Boost.build的压缩文件:请检查tools\build\v2\或者更好地阅读:...boost_1_50_0/more/getting_started/windows.html


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