Kas*_*ish 7 c++ 64-bit debug-build manifest visual-studio-2008
我正在使用64位操作系统Windows 7终极机VS2008 64位插件.
我已经在32位和64位,调试和发布配置中成功构建了我的项目.64位调试没有启动; 它给出了错误:
无法启动程序xxx此应用程序无法启动,因为应用程序配置不正确.查看清单文件以查找可能的错误.重新安装应用程序可能会解决此问题.有关更多零售,请参阅应用程序事件日志
我运行了依赖性walker.从redistibutable路径C:\ Program Files(x86)\ Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\amd64\Microsoft.VC90.DebugCRT我添加了Microsoft.VC90.DebugCRT.manifest msvcm90d msvcp90d msvcr90d Microsoft.VC90.DebugOpenMP vcomp90d. sll在我的解决方案的bin\debug文件夹中.
最后,依赖者walker没有留下任何黄色标记(丢失的文件),但它仍然给出了如下错误:
错误:找不到至少一个必需的隐式或转发依赖项.错误:由于隐式依赖模块中缺少导出功能,至少有一个模块具有未解析的导入.错误:找到了具有不同CPU类型的模块.错误:"e:\ xyz.EXE"中的Side-by-Side配置信息包含错误.应用程序无法启动,因为它的并排配置不正确.请参阅应用程序事件日志或使用命令行sxstrace.exe工具获取更多详细信息(14001).
32位清单说:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" **processorArchitecture="x86"** publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)
而64位调试清单具有:
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.VC90.DebugCRT" version="9.0.21022.8" processorArchitecture="amd64" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
</dependentAssembly>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我无法理解的是,为什么调试32位构建成功运行?
请帮帮我,因为我已经检查了很多问题,但没有找到任何可行的解决方案.
谢谢你回答我的问题.我终于解决了它,这是解决方案: -
我是一个基于Qt的VC++解决方案,该应用依赖于一些第三方dll和libs.我的任务是为我的应用程序提供64位支持,我已经在64位操作系统中构建了Qt和第三方dll和lib.
当我在调试64位配置中尝试运行我的应用程序时,我收到了CRT错误.即使我将以下CRT复制到我的应用程序的bin文件夹后,错误仍然存在
redist\Debug_NonRedist\amd64\Microsoft.VC90.DebugCRT:
Microsoft.VC90.DebugCRT.manifestmsvcm90d.dllmsvcp90d.dllmsvcr90d.dllMicrosoft.VC90.DebugOpenMP:
vcomp90d.dll当我将上述CRT粘贴到Qt和第三方库所在的相应bin文件夹中时,我能够以调试64位模式成功启动我的应用程序.
| 归档时间: |
|
| 查看次数: |
11246 次 |
| 最近记录: |