【发布时间】:2020-02-29 16:25:31
【问题描述】:
尝试从其他驱动器导入外部库时,我不断收到错误 LNK1104 "cannot open foo.lib"
我设置了正确的路径:
属性 -> 配置属性 -> VC++ 目录 -> 包含目录
属性 -> 配置属性 -> VC++ 目录 -> 库目录
属性 -> 配置属性 -> C/C++ -> 常规 -> 附加包含目录
属性 -> 配置属性 -> 链接器 -> 常规 -> 附加库目录
以及正确的 .lib 文件名,包括扩展名:
属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项
这仍然给了我错误,我发现修复它的唯一方法是在我的项目中手动复制 .lib(或 .dll)文件,通过复制它,链接器可以找到它并正确链接。
我在 SO 上找到的几乎所有问题都说要像我一样设置 .lib 的正确路径和文件名,为什么这不起作用,我必须直接复制项目目录中的 .lib 文件才能拥有有用吗?
【问题讨论】:
-
我设置了正确的路径 你的编译器告诉你你没有设置正确的路径。路径中有空格吗?
-
@drescherjm 没有空间,我已经检查了 10 次,尝试使用相对路径和绝对路径,手动编写路径并使用 VS 文件夹资源管理器
-
您在
Additional Include Directories中添加的条目之前的其他路径之一可能不正确。 -
我假设您没有混合使用 32 位和 64 位,并且您使用的 .lib 与您复制的文件相同,因此它绝对没有损坏。
-
@drescherjm 我再次检查了所有路径,但它们是正确的,我没有混合 32 位和 64 位(我只使用 64 位),我复制的库是文件夹中的我在属性中写的路径。这也是一个静态库,我不知道这是否有帮助,因为我也需要对动态库做同样的事情。
标签: c++ visual-studio visual-studio-2013 linker