我正在两台开发计算机上使用VS2010编写C ++应用程序 - 两者都是Win7 64位SP1。我使用git来同步存储库。
在其中一台机器上,已编译的可执行文件(以及测试执行程序)停止使用以下错误,而在另一台机器上它工作正常,我可以继续开发。
应用程序无法正确启动(0xc000000d)。单击“确定”关闭应用程序。
我尝试删除存储库并再次克隆它。我还确保我有相同版本的Boost,git,Visual Studio。此外,我尝试调试(踩到),但错误发生在任何代码行之前。
请注意,据我所知,我正在将Visual Studio的解决方案\项目配置文件跟踪为detailed here。
我很茫然,你会怎么调试这个?
更新1: 只有Debug版本无法运行。发布版本运行良好
更新2 :无效的可执行文件 可以在另一台计算机上运行!
更新3:我重新安装了VS2010(完全相同的版本) - 没有帮助。令人惊讶的是,两台机器之间编译的文件大小不同。
答案 0 :(得分:3)
我遇到了你提到的同样的问题。 我的解决方案:
或者你可以试试“Embed Manifest - > NO”,重建然后回到Yes。这听起来很荒谬,但它确实有时会起作用。我不知道为什么。
答案 1 :(得分:2)
我在Win7 / VS2010 / C ++上没有出现警告时突然出现了同样的现象。 Debug App无法启动,在初始化和加载多个dll时得到0xC000000D。找到了我自己负责的一个基本dll,使用链接器设置。修改设置,增量重建 - >应用启动,重建所有 - >应用程序再次崩溃。在链接器设置中将“生成清单”设置为“否”后,示例应用程序正常工作,但主应用程序仍然崩溃。将“生成清单”设置为“否”后,为我的大多数dll设置了 - >应用程序再次以调试模式启动。这些东西非常虚假,因为有些dll需要修改其他设置的设置。
答案 2 :(得分:1)
查看此问题的前两个答案
Program crashes with 0xC000000D and no exceptions - how do I debug it?
在失败的机器上,尝试运行不在调试器下的调试可执行文件,并更新您的问题以说明会发生什么。如果它崩溃了,你是否能够在消息框仍然存在时附加调试器并获得一个堆栈跟踪,告诉你它崩溃了什么功能?
答案 3 :(得分:1)
这是最奇怪的事情......
尝试删除“ipch”目录,然后重建。
希望它适合你,我浪费了很多时间。
答案 4 :(得分:1)
禁用/启用预编译标头为我解决了这个问题。 我只在Debug x64上遇到崩溃 - 我猜这与从1.50升级到1.52有关,同时保留了pch文件。
答案 5 :(得分:0)
在我的情况下,我通过在所有项目中将生成清单设置为NO来再次使用它
答案 6 :(得分:0)
我已将“嵌入清单”设置更改为“否”,然后返回“是”,但它没有帮助。 对我来说,为我的程序设置General-> Platform Toolset到Windows SDK 7.1,并且用它编译的所有依赖库都有帮助。
答案 7 :(得分:0)
这是ipch只是删除整个文件夹,它将清除它。我也困惑了一段时间。
答案 8 :(得分:0)
我在MSVC2015上运行的项目中使用与MSVC2010一起编译的OpenCV库时看到了错误。更改项目配置属性 - > General->从Visual Studio 2015(v140)到Visual Studio 2010(v100)的平台工具集解决了错误。