You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022编译报错LNK1104:无法打开指定Boost文件系统库

解决LNK1104无法找到Boost Filesystem库的问题

一、先确认目标库是否真的存在

去你编译Boost后的输出目录(默认是Boost根目录下的stage/lib文件夹),查找是否存在libboost_filesystem-vc143-mt-gd-x64-1_83.lib文件:

  • 如果不存在,说明编译Boost时没生成该库,需要重新编译;
  • 如果存在,说明是项目配置问题,直接看第二部分。

二、重新编译Boost生成对应库

打开VS2022的x64 Native Tools Command Prompt,切换到Boost根目录,执行以下命令:

bootstrap.bat
b2 toolset=msvc-14.3 address-model=64 variant=debug,release link=shared,static threading=multi --with-filesystem
  • toolset=msvc-14.3对应VS2022的编译器;
  • address-model=64指定生成x64架构库;
  • variant=debug,release同时生成Debug和Release版本;
  • --with-filesystem只编译filesystem模块(加快编译速度),如果需要其他模块可以去掉这个参数。

三、检查Visual Studio项目配置

确保项目配置和Boost库的版本完全匹配:

  1. 切换项目到Debug x64模式(因为错误中的库是Debug、x64版本);
  2. 右键项目 -> 属性 -> VC++目录 -> 库目录:添加Boost的stage/lib路径;
  3. 右键项目 -> 属性 -> C/C++ -> 常规 -> 附加包含目录:添加Boost根目录(比如C:\boost_1_83_0);
  4. 右键项目 -> 属性 -> 链接器 -> 输入 -> 附加依赖项:可以手动添加libboost_filesystem-vc143-mt-gd-x64-1_83.lib(不过如果库目录配置正确,Boost的自动链接机制会自动找,这一步可选)。

四、代码里的两个小问题

你的代码还有两处逻辑/语法错误,顺便修正:

  1. 路径字符串的反斜杠需要转义:
path myPath = ("C:\\Visual Studio IP\\Test Project");
  1. createFolder函数逻辑颠倒了,应该是路径不存在时创建,存在时提示:
void createFolder(path myPath) {
    if (!exists(myPath)) {
        create_directory(myPath);
        std::cout << "directory created in: " << myPath;
    }
    else {
        std::cout << "Path already exists!";
    }
}

内容的提问来源于stack exchange,提问作者Iancu Stefan-Teodor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 12:52:52