Visual Studio引用动态库遇LNK1104:无法打开MyDll.lib
Visual Studio C++动态库引用找不到.lib的解决方案
问题根源
控制台项目的链接器默认搜索路径未包含你的统一输出目录$(SolutionDir)$(Platform)\$(Configuration)\,所以即使DLL的.lib已生成在该目录,链接器也无法定位到它。
解决步骤
1. 添加链接器附加库目录
打开控制台项目属性页,依次进入链接器 > 常规,在附加库目录中填入$(SolutionDir)$(Platform)\$(Configuration)\。这会明确告诉链接器去你的统一输出目录查找库文件。
2. 确认项目依赖与编译顺序
右键控制台项目 → 选择项目依赖项,勾选MyDll。这样Visual Studio会优先编译DLL项目,保证控制台项目编译时MyDll.lib已经生成完成。
3. 利用项目引用简化配置(推荐)
既然已经添加了MyDll作为项目引用,其实可以去掉链接器 > Input中手动添加的MyDll.lib。正确配置项目引用后,VS会自动完成以下操作:
- 将DLL的头文件目录添加到控制台项目的包含路径
- 将DLL的输出目录添加到链接器的库搜索路径
- 自动把
MyDll.lib加入链接输入列表 - 保证编译顺序正确
4. 清理并重新生成解决方案
执行生成 > 清理解决方案,再执行生成 > 重新生成解决方案,避免旧的缓存文件干扰编译结果。
注意事项
Debug和Release模式的配置是独立的,要确保两种模式下的附加库目录都正确配置,$(Configuration)宏会自动适配当前模式的路径。
内容的提问来源于stack exchange,提问作者user24011790
相关产品推荐
相关产品推荐

