Buck2 运行在 Windows 上的一些问题

1. 运行权限问题

当 Buck2 在 Windows 上运行并尝试创建符号链接(symlink)时,可能会出现错误 “A required privilege is not held by the client.”(错误代码1314,意为客户端没有所需的特权)。这个错误表明当前用户帐户缺乏创建符号链接的权限。

解决方法:开启 Windows 开发者模式和修改注册表

启用开发者模式

  1. 打开开发者模式设置: 按下 Win + R,输入命令 ms-settings:developers 并回车,或者通过开始菜单进入 “设置” -> “隐私和安全” -> “针对开发人员”(在部分系统中路径为“更新和安全” -> “针对开发人员”);​
  2. 启用开发者模式: 在开发者设置页面,将 “开发人员模式” 开关切换为打开状态。阅读提示后确认启用。启用后,Windows 会授予当前用户帐户创建符号链接的权限​;

修改注册表

  1. 按下 Win+R 输入 regedit 打开注册表;
  2. 定位:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
  3. 新建 NtfsAllowSymlinkEvaluation 值为 1 ( DWORD值 );

最后重启电脑即可,不重启可能会无法生效,总之重启大法解决一切。

2. Python 环境问题

  1. 测试系统安装 Python 3.13.2 ,并且需要将 Python 的路径添加到环境变量中,执行 Buck2 的 build 命令时不再报找不到 Python 的错误;