mac 上 vs code 的“x64”仅为历史命名,实际架构需用 file 命令查看:arm64 为 apple silicon 原生,x86_64 表示经 rosetta 2 转译;m 系列用户应下载官方 darwin-arm64 版并设 lsarchitecturepriority 为 arm64,禁用 x86_64 强制设置。

Mac 上的 VS Code 不存在“改成 x64”这回事——你很可能正用着 x86_64 版本,却误以为它该是 x64;或者你用的是 Apple Silicon(M1/M2/M3),真正该关心的是怎么切到 arm64 原生运行。
确认当前 VS Code 实际运行架构
界面里看“关于 VS Code”显示的“x64”只是历史命名惯性,不反映真实 CPU 架构。macOS 上真正的判断依据是二进制实际加载的指令集。
- 打开终端,执行:
file /Applications/Visual\ Studio\ Code.app/Contents/MacOS/Electron - 若输出含
arm64,说明已在原生 Apple Silicon 模式下运行 - 若输出含
x86_64,说明正通过 Rosetta 2 转译运行(即使你装的是 Universal 包) - 注意:
ps aux | grep "Code Helper"也能验证渲染进程是否为arm64,避免 Dock 图标残留旧启动方式
下载或切换到 arm64 原生版本(M1/M2/M3 用户必做)
VS Code 自 1.58 起提供独立 darwin-arm64 构建,绕过 Rosetta 2 后内存占用更低、启动更快、扩展兼容更稳——这不是“可选优化”,而是 Apple Silicon 设备的合理默认。
- 去
code.visualstudio.com下载页,**务必点 “macOS (ARM64)”**,不是 “Universal” 或 “Intel chip” - 拖入“应用程序”前,先退出所有 VS Code 进程:
killall "Code Helper"+killall "Electron" - 如果已装 Universal 版且想临时测试 arm64:终端执行
arch -arm64 open -n -a "Visual Studio Code" - 长期生效需改
Info.plist:右键 App → “显示包内容” →Contents/Info.plist→ 在<dict></dict>内加键值:LSArchitecturePriority→arm64
别碰 LSArchitecturePriority 改成 x86_64——除非你真在 Intel Mac 上跑不动
网上流传的“加 x86_64 强制走 x64”的做法,在 M 系列 Mac 上不仅无效,还可能破坏扩展加载逻辑(尤其涉及本地 Node.js ABI 的 C++ 扩展)。x86_64 不是“更高版本”,只是旧架构代号。
- Intel Mac 用户无需任何操作:VS Code x86_64 版就是原生,
file命令显示x86_64即正确 - M 系列用户硬设
x86_64优先级,会导致部分扩展报Unsupported architecture并禁用 -
intelliSenseMode配置项(如gcc-x64)中的x64是指编译器目标平台,和 VS Code 自身运行架构无关
真正容易被忽略的是:VS Code 自身架构和你项目里用的编译器(比如 clang、g++)、调试器(lldb)、甚至终端里 zsh 的架构,三者最好保持一致。混用 arm64 VS Code + x86_64 shell + Rosetta 编译器,会触发奇怪的路径解析失败或头文件找不到问题。










