首页 > 解决方案 > LNK1104 用于不需要的库

问题描述

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

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

运行时库是 /MDd。

什么可能导致这个问题?一个破碎的助推器?

标签: c++visual-studioboostopenframeworks

解决方案


取自对问题的评论。尽管这很不寻常,但可能是项目的依赖项之一中的标头与文件系统库中的标头具有相同的名称。并且由于您将 boost 首先放在Additional Include Directoriesboost 标头中,而不是来自不同库的标头。默认情况下, boost 会使用包含此标头Visual Studio的 so 自动插入链接命令,这将导致链接依赖。#pragma comment(lib, libname)

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


推荐阅读