c++ - 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。
什么可能导致这个问题?一个破碎的助推器?
一
解决方案
取自对问题的评论。尽管这很不寻常,但可能是项目的依赖项之一中的标头与文件系统库中的标头具有相同的名称。并且由于您将 boost 首先放在Additional Include Directories
boost 标头中,而不是来自不同库的标头。默认情况下, boost 会使用包含此标头Visual Studio
的 so 自动插入链接命令,这将导致链接依赖。#pragma comment(lib, libname)
在这种情况下尝试的一个解决方案是将 boost 移到的末尾,Additional Include Directories
因此当编译器搜索头文件时,它会首先从前一个依赖项中找到那个头文件。
推荐阅读
- c# - 如何在聚焦时使用代码更改富编辑框的背景?
- swift - 避免在 Swift Combine 框架中强制展开
- jquery - 这个 jQuery addClass 有什么问题
- java - 使用cordova(Linux 16.04)的环境变量JAVA和Android问题
- javascript - 为层次结构节点对象重新格式化的祖先路径
- c++ - 使用密码将 RSA 私钥写入 PEM 文件
- python - 无法在 Python 中修改全局变量
- c++ - 在#define 宏中控制条件 Openmp
- r - 计算许多列表的元素
- java - 如何在 Spring mvc 基本请求参数中调度请求,然后再发送到调度程序 servlet?