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 时,它会首先找到先前依赖项中的那个。
我正在尝试将 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 时,它会首先找到先前依赖项中的那个。