LNK1104 用于不需要的库

LNK1104 for unneeded library

我正在尝试将 Boost 库包含在我的 OpenFrameworks 项目中,尤其是它 当我将 boost 根目录添加到新项目的 Additional Include Directories 时,我看到错误 LNK1104 cannot open file 'libboost_filesystem-vc141-mt-gd-x32-1_72.lib',尽管我什至不需要文件系统库。

但是,当我将 boost 根目录添加到新创建的 c++ 控制台项目的 Additional Include Directories 时,错误没有显示,我可以毫无问题地使用该库。

运行时库是 /MDd。

什么可能导致此问题?损坏的 boost 版本?

一个

摘自对问题的评论。虽然这很不寻常,但可能是项目的一个依赖项中的 header 与文件系统库中的 header 同名。由于您将 boost 放在 Additional Include Directories 的第一位,因此包含了 boost header 而不是来自不同库的 header 。默认情况下,Visual Studio boost 使用 #pragma comment(lib, libname) 自动插入 link 命令,因此包含此 header 将导致 link 依赖。

在这种情况下尝试的解决方案是将 boost 移动到 Additional Include Directories 的末尾,这样当编译器搜索 header 时,它会首先找到先前依赖项中的那个。