当前位置:  开发笔记 > 编程语言 > 正文

如何使用MSCV中的Boost Filesystem Library解决LNK1104错误?

如何解决《如何使用MSCV中的BoostFilesystemLibrary解决LNK1104错误?》经验,为你挑选了1个好方法。

我无法将我的项目链接到Microsoft Visual C++ 2008 Express Edition中的Boost(版本1.37.0)文件系统lib文件.Filesystem库不是仅包含头的库.我一直在关注官方推送网页上发布的Windows入门指南.以下是我采取的步骤:

    我使用bjam构建完整的lib文件集:

    bjam --build-dir="C:\Program Files\boost\build-boost" --toolset=msvc --build-type=complete
    

    我将/ libs目录(位于C:\ Program Files\boost\build-boost\boost\bin.v2)复制C:\ Program Files\boost\boost_1_37_0\libs.

    在Visual C++中,在" 项目">"属性">"其他库目录"下,我添加了以下路径:

    C:\ Program Files\boost\boost_1_37_0\libs

    C:\ Program Files\boost\boost_1_37_0\libs\filesystem\build\msvc-9.0express\debug\link-static\threading-multi

    我绝望地加了第二个.它是libboost_system-vc90-mt-gd-1_37.lib所在的确切目录.

    配置属性> C/C++>常规>其他包含目录中,我添加了以下路径:

    C:\ Program Files\boost\boost_1_37_0

    然后,为了使锦上添花,在工具>选项VC++目录>库文件下,我添加了步骤3中提到的相同目录.

尽管如此,当我构建我的项目时,我收到以下错误:

fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-gd-1_37.lib'

另外,这里是我试图编译的代码以及(假设正确的)lib文件所在的前述目录的屏幕截图:

#include "boost/filesystem.hpp"   // includes all needed Boost.Filesystem declarations
#include                // for std::cout
using boost::filesystem;          // for ease of tutorial presentation;
                                  //  a namespace alias is preferred practice in real code

using namespace std;

int main()
{
    cout << "Hello, world!" << endl;

    return 0;
}

Scott.. 8

Ferruccio的答案包含了大部分见解.然而,Pukku让我意识到我的错误.我发布自己的答案给出了完整的解释.正如Ferruccio解释的那样,Filesystem依赖于两个库.对我来说,这些是:

libboost_system-VC90-MT-GD-1_37.lib

libboost_filesystem-VC90-MT-GD-1_37.lib

我一定没注意到当我提供了libboost_filesystem-vc90-mt-gd-1_37.lib的目录时,错误输出从

fatal error LNK1104: cannot open file 'libboost_filesystem-vc90-mt-gd-1_37.lib'

fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-gd-1_37.lib'

让我认为错误是持续存在的.这导致我发布一些相当不准确的信息.此外,在阅读文件系统需要两个库之后,我现在看到bjam命令的关键字阶段的重要性.供应

bjam --build-dir="C:\Program Files\boost\build-boost" --toolset=msvc --build-type=complete stage

使bjam 在boost_1_37_0目录中放置一个名为stage附加目录.此文件夹包含名为/ lib的文件夹,该文件夹在一个位置包含所有lib文件的副本.这对Visual C++很方便,因为您可以使用此单个目录提供它,它将处理所有依赖项.



1> Scott..:

Ferruccio的答案包含了大部分见解.然而,Pukku让我意识到我的错误.我发布自己的答案给出了完整的解释.正如Ferruccio解释的那样,Filesystem依赖于两个库.对我来说,这些是:

libboost_system-VC90-MT-GD-1_37.lib

libboost_filesystem-VC90-MT-GD-1_37.lib

我一定没注意到当我提供了libboost_filesystem-vc90-mt-gd-1_37.lib的目录时,错误输出从

fatal error LNK1104: cannot open file 'libboost_filesystem-vc90-mt-gd-1_37.lib'

fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-gd-1_37.lib'

让我认为错误是持续存在的.这导致我发布一些相当不准确的信息.此外,在阅读文件系统需要两个库之后,我现在看到bjam命令的关键字阶段的重要性.供应

bjam --build-dir="C:\Program Files\boost\build-boost" --toolset=msvc --build-type=complete stage

使bjam 在boost_1_37_0目录中放置一个名为stage附加目录.此文件夹包含名为/ lib的文件夹,该文件夹在一个位置包含所有lib文件的副本.这对Visual C++很方便,因为您可以使用此单个目录提供它,它将处理所有依赖项.


,错误输出从
目录中放置一个名为

目录.此文件夹包含名为
的文件夹,该文件夹在一个位置包含所有lib文件的副本.这对Visual C++很方便,因为您可以使用此单个目录提供它,它将处理所有依赖项.
推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有