Windows8.1如何解决安装VC++2010失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows8.1如何解决安装VC++2010失败相关的知识,希望对你有一定的参考价值。

参考技术A

很多小伙伴都说:Windows8.1安装VC++2010失败,不知道怎么办!现在我来告诉大家怎么解决吧!
操作步骤:
1、打开这台电脑,然后右键点击C盘
并打开属性窗口;
2、点击磁盘清理
按钮,来打开磁盘清理程序;
3、在磁盘清理界面,勾选全部可清理选项,点击“确定”按钮,即可开始清理磁盘一些临时文件,垃圾文件;
4、顺便点击“清理系统文件”按钮,清理更多的无用文件;
5、然后再重启win8.1系统,最后再次尝试安装VC++
运行库。
关于VC++
2010安装过程中会出现的问题数不胜数,如果大家有丢失其组件问题的话,可以参阅《Win8提示丢失VC++组件的解决方法》来解决。

即使在安装 VC++ 2017 可再发行组件后,具有动态链接 VC++ 的 Windows 10 应用程序也无法启动

【中文标题】即使在安装 VC++ 2017 可再发行组件后,具有动态链接 VC++ 的 Windows 10 应用程序也无法启动【英文标题】:Windows 10 app with dynamically linked VC++ does not start even after installation of VC++ 2017 redistributable 【发布时间】:2018-12-06 12:10:57 【问题描述】:

我们目前正在测试一个 Windows 应用程序,该应用程序使用最新的 C++ Visual Studio 构建并在 Windows 10 上运行。该应用程序动态链接 VC++ 库(我们不能选择静态链接)。

在我们测试人员的 75% 的机器(包括我们所有的开发机器)上,应用程序在安装后开箱即用,但在其他一些机器上,它在加载动态系统库的过程中无法启动并且(可能)失败(因为它不会触发任何类型的异常,会像运行时错误一样写入小型转储)。

    其中一些用户遇到了有关缺少运行时 dll 的错误,这些错误在安装最新的 VC++ 2017 可再发行组件后得到解决,但应用程序仍然无法运行。 一位用户还使用 Dependencies 工具 (https://github.com/lucasg/Dependencies) 检查了库依赖关系,但他的结果并没有什么奇怪的 - 工作机器上的输出和他自己的输出之间没有明显的区别。一些 UCRT 子依赖项旁边有几个问号(参见屏幕截图:missing modules as shown in Dependencies),但它们也在工作机器上,所以我认为它们是误报。 我还尝试将相关的 40 个 UCRT 和 VC++ dll 作为应用程序本地部署部署在可执行文件旁边,但它仍然无法在受影响的机器上打开(我可能错过了一些相关的机器,或者它们是仍然从 System32 文件夹中引用)

如果我们无法在本地重现该问题,您将如何调试此类问题(它可以在两台全新安装 Windows 10 且没有构建环境的全新设备上开箱即用)并且 关于库调用可能出现什么问题的信息很少?

【问题讨论】:

您的应用是针对 x86 还是 x64?事件日志中有任何内容吗? x64 独占。 Report.wer 没有显示什么特别之处:Sig[0].Name=应用程序名称 Sig[0].Value=OurApplication.exe Sig[1].Name=应用程序版本 Sig[1].Value=0.0.0.0 Sig[2]。 Name=应用程序时间戳 Sig[2].Value=5bfc1d32 Sig[3].Name=故障模块名称 Sig[3].Value=OurApplication.exe Sig[4].Name=故障模块版本 Sig[4].Value=0.0 .0.0 Sig[5].Name=故障模块时间戳 Sig[5].Value=5bfc1d32 Sig[6].Name=异常代码 Sig[6].Value=c000001d Sig[7].Name=异常偏移 Sig[7] .Value=00000000004d599e 【参考方案1】:

c000001d是非法指令异常码。

您的目标是客户 CPU 不支持的指令集(如 AVX2 或 SSE4.1),或者可执行文件已损坏(例如,以文本模式而不是二进制模式下载)。

为获得最佳可移植性,在使用 VC++ 编译时不要指定 /arch:AVX/arch:AVX2。然后,编译器将针对给定架构(x86 或带有 SSE2 的 x86_64)上可用的基本指令集。

【讨论】:

非常感谢您的见解!设置 /arch 标志以确保所有 64 位处理器的最大兼容性(我看到 SSE2 默认在 64 位上启用)? 任何 x64 CPU 都应该支持 SSE2,所以这是一个安全的选择。 有效!非常感谢。我在 LLVM 中添加了这些目标编译选项,它们似乎成功了:-mno-sse4.2-mno-avx-mno-avx2。我还在 CMAKE_CXX_FLAGS 中添加了 /arch:SSE2 标志,但根据其他一些帖子,这对于 x64 来说似乎是多余的。一百万谢谢,这根本与运行时库无关。

以上是关于Windows8.1如何解决安装VC++2010失败的主要内容,如果未能解决你的问题,请参考以下文章

vc++2010安装失败

VC++2010安装路径无法修改(变灰了),怎么解决?

WIN10 64位系统 VC++2010 64 安装不了 怎么解决这个问题

boost::locale 1.57.0 和 Windows 下的 ICU 库 54.1 (VC++ 2010)

为啥vc2010不能安装?

解决vc2010中C程序调试,运行窗口一闪而过问题