gpt4 book ai didi

c++ - VC 2012 Release Build遇到启动错误

转载 作者:行者123 更新时间:2023-11-28 02:23:38 24 4
gpt4 key购买 nike

我正在通过 VC 2012(VC 2012 (VC11) 作为我的编译器)构建一个纯 Win32 程序(没有 clr 或任何程序集)。它使用boost 1.58、wxWidget 3.0.2系列、gsl 1.8、jsoncpp、Open CV 2.4.10等...开发盒运行Win7 64位。我希望它是一个单一的可执行文件,并且能够在 Win 7 32/64 上运行,所以我通过相同的 VC 2012 将上述所有包构建为库。(感谢 cmake)...

它在开发盒上工作正常,但在只安装了 VC 再分发包的干净的机器上就不行了。我收到错误消息框,要求我使用 sxstrace,事件日志中的消息有如下并排错误,我也尝试了 sxstrace 并得到了类似的错误。

"D:\Release\xxxx.exe"的启动内容导致失败。找不到依存组合 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version= "9.0.21022.8"。请使用 sxstrace.exe 进行详细的诊断。

我一直在四处寻找。 All and answers 只是说我应该为所有库使用所有发布版本。是的,如果我不这样做,我一开始就无法拥有单个可执行文件。它将无法链接。 (我是通过犯很多错误才学会的)我已经为我的程序尝试了 MD 或 MT 构建(不是将它们混合在一起。它们是分开测试的。)。任何一种模式都有效。同样的错误仍然存​​在。我还安装了很多 VC2008 9.0.21022、-.30729.17、-30729.4148、-30729.6161、VC 2010 10.0.40219、VC 2012 11.0.61030 (x86/x64)

我真的不明白。 VC 2012制作的纯win32 release build,为什么需要VC90 debug dll?

如果有人能给我更准确的建议,告诉我如何解决甚至确定我构建的代码或库哪里出了问题,出了什么问题,我将不胜感激。

最佳答案

我建议您使用以下工具:Dependency walker .

通过将您的可执行文件加载到您的 PC(它运行的地方)上,您应该找出它使用的所有 DLL,从而发现您的项目所依赖的(中型)库列表中的任何隐藏依赖项(以及它们的依赖项) .

这应该可以帮助您指出您的 PC 上有但新安装的机器上没有的 DLL。

关于c++ - VC 2012 Release Build遇到启动错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31447867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com