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 下载了libogg
和libvorbis
,编译它们(我不得不先构建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语言之后调试时显示“无法启动程序,系统找不到指定文件”?