调试版本运行但发布给出 0xc000007b - 缺少 dll?
Posted
技术标签:
【中文标题】调试版本运行但发布给出 0xc000007b - 缺少 dll?【英文标题】:Debug version runs but release gives 0xc000007b - missing dlls? 【发布时间】:2013-04-09 17:24:38 【问题描述】:当通过 VS2010 通过 Project Only > ProjectName 运行我的 Visual Studio C++ 应用程序调试版本时,生成的 exe 运行良好。但是,当我生成发布版本并转到创建 exe 的文件夹时,我收到以下错误:
The application was unable to start correctly (0xc000007b). Click Ok to close the application
文件夹中的文件只是 exe 文件,而我的项目使用各种 boost 库。 是否有可能由于缺少 boost dll 而发出此消息?有没有办法让编译器将所有必要的dll粘贴到exe文件夹中。
有什么方法可以从 VS2010 启动发布版本,就像我们在调试 >> 启动新实例中的调试版本一样
【问题讨论】:
【参考方案1】:我讨厌这种情况发生。可能是它缺少 bloost DLL 的事实:解决此问题的最简单方法是将文件夹添加到 Path 环境变量中。可悲的是,我们没有从您的帖子中获得足够的信息来确认这是问题所在。常见的其他问题包括:您正在链接到为不同架构构建的库/正在使用不同的运行时库,您缺少其他 3rd 方 dll,您在链接器中使用的 .lib 文件指向不同版本的代码比您指向的 dll...不胜枚举。
至于在运行时复制 dll,您可以使用自定义构建事件 [http://msdn.microsoft.com/en-us/library/e85wte0k%28v=vs.80%29.aspx]。只需编写一个将 dll 复制为“构建后事件”的批处理脚本就可以了,但我建议先使用 Path 方式。
【讨论】:
有没有办法检查exe需要哪些dll文件? 如果调试版本运行我不明白为什么发布版本没有运行?有没有办法从 VS2010 推出发行版? @MistyD 是的,你应该可以。差异可能是因为你的代码的Debug和Release版本使用了自己的配置文件,所以设置不一样。以上是关于调试版本运行但发布给出 0xc000007b - 缺少 dll?的主要内容,如果未能解决你的问题,请参考以下文章