如何解决 MSCV 中 Boost 文件系统库的 LNK1104 错误?

2024-02-29

我无法将我的项目链接到 Microsoft Visual C++ 2008 Express Edition 中的 Boost(版本 1.37.0)文件系统 lib 文件。文件系统库是not仅标头库。我一直在关注Windows 入门 http://www.boost.org/doc/libs/1_37_0/more/getting_started/windows.html 指南发布在官方 boost 网页上。以下是我已采取的步骤:

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

    bjam --build-dir="C:\Program Files\boost\build-boost" --toolset=msvc --build-type=complete
    
  2. 我将 /libs 目录(位于 C:\Program Files\boost\build-boost\boost\bin.v2)复制到 C:\Program Files \boost\boost_1_37_0\libs。

  3. 在 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 所在的目录。

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

    • C:\Program Files\boost\boost_1_37_0
  5. 然后,为了锦上添花,在工具 > 选项 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 <iostream>               // 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;
}

费鲁吉奥的回答包含了大部分的见解。然而,Pukku让我认识到了自己的错误。我发布我自己的答案以给出完整的解释。正如 Ferruccio 所解释的,文件系统依赖于两个库。对我来说,这些是:

  • 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'

to

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

让我认为错误仍然存​​在。这导致我发布一些相当不准确的信息。另外,在读到文件系统需要两个库之后,我现在明白了关键字的重要性stage对于 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++ 来说很方便,因为您可以为其提供这个单一目录,并且它将处理所有依赖项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决 MSCV 中 Boost 文件系统库的 LNK1104 错误? 的相关文章

随机推荐

  • 自定义注解可以抛出自定义异常,而不是MethodArgumentNotValidException?

    我有一个 ExceptionHandler MethodArgumentNotValidException class 在验证失败时返回 HTTP 代码 400 我创建了一个自定义注释 需要将 HTTP 代码更改为 422 但是 由于异常处
  • Android Xperia X10 SoundPool

    我收到一些 Android 应用程序用户的报告称 X10 上没有播放声音 我有点困惑 因为它适用于我尝试过的所有其他手机 Neus One Hero Droid 我正在使用 SoundPool 类来播放声音 其他人在使用 X10 时是否遇到
  • 如何编译由多个文件组成的Go程序?

    我有一个小程序 由三个文件组成 所有文件都属于同一个包 main 但当我这样做时go build main go构建不成功 当它只是一个文件时 main go 一切正常 现在我花了一些功夫来分离代码 看起来编译器无法找到从中取出的内容mai
  • 从右到左方向按钮尺寸的不相关变化

    我将 9 个 jbutton 添加到 jpanel 中 并将面板添加到 jscrollpane 中 并将其添加到 jframe 中 http www pic1 iran forum ir images up9 954263236836585
  • 使用动态库进行 Objective C Method Swizzling

    我正在尝试学习方法调整 我在 Objective C 中创建了一个程序 它只调用其类中的一个方法 现在我正在尝试使用 DYLD INSERT LIBRARIES 加载动态库 以便我可以使用动态库中定义的新方法覆盖我的方法实现 目的是修改参数
  • 如何使用“concurrent.futures.ProcessPoolExecutor”取消长时间运行的子进程?

    你可以看到完整的here https github com traverseda rratbot blob master main py L35 我的代码的简化版本如下 executor ProcessPoolExecutor 10 try
  • 如何在 pl/sql 中的另一个游标的 select 语句中使用游标中的变量

    我想运行一个查询 获取结果 然后使用第二个语句 光标 中第一个语句的值与另一个 select 语句迭代该查询的结果 我的数据库中有 40 个用户 所有用户都具有相同的数据库模式结构 我想通过以下方式获取用户名 SELECT distinct
  • 在 PowerShell 中使用 StreamWriter 附加到文件

    我创建了一个 PowerShell 脚本 该脚本使用 StreamWriter 将 Windows 中文件夹的权限结果写入 CSV 文件 目前 该脚本为每个文件夹创建一个新文件 我的问题是 StreamWriter 是否可以附加到文件而不是
  • FirebaseCore 词法或预处理器问题

    所以我在使用 firebase 编译我的项目时遇到了问题 这个问题是在我更新所有 firebase pod 后开始的 自从我更新了 pod 后 我就一直收到此错误 词法或预处理器问题 然后当我转到错误是什么时 它说这个 找不到 Google
  • 对 kafka 消费者进行负载测试

    我试图弄清楚如何对卡夫卡消费者进行负载测试 在我的应用程序中 消费者从 kafka 读取消息并做了很多工作 其中大部分是在数据库中写入内容 由于这对我的团队来说是一个重要的过程 因此我希望能够对消费者进行负载测试 并能够获得一些有关消费情况
  • 将多行合并为一行以替换列中的空值

    如何将多行合并为一行 以便一行中的某些列替换要合并的另一行中相同列中的空值 这是我所拥有的和我想要实现的目标的一个例子 查询是 SELECT Drug Name DefaultVendor Name Drug Strength Catalo
  • AndroidrelativeLayoutalignTop不起作用

    我正在尝试在RelativeLayout 中使用alignTop 属性 以便将文本设置在个人资料图片的右侧 与图片的顶部对齐 这是我的布局
  • 将文本添加到 DataGridView 行标题

    C 是否允许将字符串添加到 DataGridView 中的 RowHeader 如果是的话 是如何实现的呢 我正在编写一个 Windows 窗体来显示今年迄今为止的客户付款数据 ColumnHeaders 显示一月 二月 三月等 而不是有一
  • 如何避免 JavaScript 中的短路求值?

    我需要执行两边 声明 但如果第一部分返回 则不会发生这种情况false 例子 function doSomething x console log x function checkSomething x var not1 x 1 if no
  • 如何保护客户端/服务器套接字通信的安全

    假设客户端和服务器应用程序在不同的计算机上运行 Today Server will receive the request and cast it as needed ProxyResponse message ProxyResponse
  • docker buildx“执行用户进程导致:执行格式错误”

    我正在尝试交叉编译一个 Rust 应用程序以在我的树莓派集群上运行 我看到 docker 的 buildx 应该能够使这成为可能 我现在有一个最小的 dockerfile 如下所示 FROM rust RUN apt get update
  • 在本地工作的 R 脚本不适用于shinyapp.io

    我正在尝试组装一个 R Shiny 应用程序 至少在最初 它可以绘制日期数据的直方图 我让它在 RStudio 的本地系统上工作得很好 但在闪亮的应用程序 io 中它不起作用 目前 该应用程序非常简单 用户界面实际上没有做任何事情 数据只是
  • Jupyter 上 Sparkcollect() 的 IllegalArgumentException

    我设置了 Jupyter 4 3 0 Python 3 6 3 Anaconda 和 PySpark 2 2 1 以下示例在通过 Jupyter 运行时将失败 sc SparkContext getOrCreate rdd sc paral
  • 如何获取两个列表之间的所有唯一分配

    我有两个列表 每个列表都可以包含重复的值 但任何值只能出现在这两个列表之一 或没有 中 A 0 1 B 2 3 我想获得这两个列表之间的所有唯一映射 assignment A B 0 2 1 3 0 3 1 2 我知道这可以例如使用 ite
  • 如何解决 MSCV 中 Boost 文件系统库的 LNK1104 错误?

    我无法将我的项目链接到 Microsoft Visual C 2008 Express Edition 中的 Boost 版本 1 37 0 文件系统 lib 文件 文件系统库是not仅标头库 我一直在关注Windows 入门 http w