同事下了个开发工具,安装包装完打不开,提示不是有效的 Win32 应用程序。他下的是 x64 版,机器是十年前的 32 位系统。
这两个后缀说的不是软件新旧,是 CPU 的指令位宽。
一眼判断自己的系统
Win 加 Pause 打开系统信息,看系统类型那一行。写着 64 位操作系统就是 x64,只写 32 位就是 x86。命令行里执行 echo %PROCESSOR_ARCHITECTURE%,返回 AMD64 是 64 位,x86 是 32 位。
为什么 64 位机器也能装 x86 软件
64 位 Windows 里有个 WOW64 兼容层,32 位程序跑在上面,看起来和原生一样,只是多一层转换。安装目录也能看出来:64 位程序进 Program Files,32 位程序进 Program Files (x86)。
两者的实际差别
- x86 单进程可用内存约 2G,开到 4G 上限就崩
- x64 能用满物理内存,处理大文件、跑虚拟机优势明显
- 驱动必须和系统位宽一致,x86 驱动装不进 x64 系统
老软件只有 x86 版怎么办
多数能直接装,跑起来没问题。少数带底层驱动的,比如老式加密狗、老版本数据库客户端,可能不兼容,得找厂商要 64 位版本或者换虚拟机跑。32 位系统装不了 64 位软件,这条路是死的。
下载页选错的其他后果
选错架构有时不报错,装完功能缺一半,比如某个插件加载失败。体积上 x64 包通常大一些,也别拿体积当判断依据。
怎么确认装好的软件是哪种架构
任务管理器里看进程,32 位程序后面会标 (32 位),没有标注的是 64 位。命令行用 tasklist 也能看。装完发现插件加载不了、内存占用卡在 2G 出头,基本就是装成了 32 位版本,换包重装。
同事最后换了 x86 安装包,一次装好。选哪个看系统位宽,别凭感觉,两秒钟就能查清楚。