VS2012:程序无法启动,因为“libvorbisfile.dll”丢失

Posted

技术标签:

【中文标题】VS2012:程序无法启动,因为“libvorbisfile.dll”丢失【英文标题】:VS2012: Program can't start because "libvorbisfile.dll" is missing 【发布时间】:2014-04-10 00:42:20 【问题描述】:

我有一个项目,我正试图让它读取一个 .OGG 文件。 我已经从here 下载了libogglibvorbis,编译它们(我不得不先构建libogg 时遇到了一些麻烦),然后得到了以下文件:

libogg.lib
libogg.dll
libvorbis.lib
libvorbis.dll
libvorbisfile.lib
libvorbisfile.dll

我将它们全部拖到项目的 Libraries 文件夹中,已添加到项目中,并将它们包含在 Linker->Input(仅 .lib)中。

接下来,我将标题复制到项目的 Includes 文件夹中,该文件夹也已添加到项目中,其中包含文件:

ogg/ogg.h
ogg/os_types.h

vorbis/codec.h
vorbis/vorbisenc.h
vorbis/vorbisfile.h

然后我添加了一些代码,我得到了错误“程序无法启动,因为计算机中缺少 libvorbisfile.dll。” 而且我很确定该文件位于 Library 文件夹中并在属性中正确定义。

我在此过程中是否做错了什么? 如何找出问题所在以便修复?

我已经尝试将 .dll 放入项目文件夹和 Windows/System32 文件夹中,但没有成功。

【问题讨论】:

【参考方案1】:

库文件夹适合您的 .lib 文件,但它会在运行时查找 .dll,您的项目设置对此没有影响。 Windows 在几个地方寻找 .dll,但让程序运行的最简单方法是将 .dll 放在工作目录中,这是您运行可执行文件的位置(可能与 .exe 相同的目录文件)。

【讨论】:

也试过了,还是不行。通常将它们放在 Windows/Sys32 - 64 文件夹中总是可以解决这个问题,但这次不是......所以我猜是发生了一些非常错误的事情...... 我重新阅读了您的答案,并注意到您建议放入 Debug/Release 文件夹,而不是项目的...我试过了,它奏效了!虽然我不确定为什么只有这些(所有三个都必须移到那里,ogg、vorbis 和 vorbisfile)必须在那里...... 参见:msdn.microsoft.com/en-us/library/windows/desktop/… 您可能将 .dll 放入了错误的 system 文件夹中。使用文章中提到的功能,看看你的.dll是否放对了地方。

以上是关于VS2012:程序无法启动,因为“libvorbisfile.dll”丢失的主要内容,如果未能解决你的问题,请参考以下文章

为啥我用vs2012编完c语言之后调试时显示“无法启动程序,系统找不到指定文件”?

vs2012无法启动已配置的开发Web服务器

vs2012调试出错

vs2015 无法打开 显示应用程序无法启动,因为应用程序的并行配置不正确。 sidebyside 错误号33

vs 2019无法启动程序,找不到指定文件,怎么解决?

VS2012 无法运行测试