为bazel指定MSVC版本

时间:2019-03-07 14:50:52

标签: c++ visual-studio visual-c++ bazel

我正在寻找一种告诉bazel应该使用哪个版本的VC ++的方法。 我已经设置了BAZEL_VC=\VS2017Community\VC\ 但是问题是我的目录\VS2017Community\VC\Tools\MSVC有许多不同的VC ++编译器。特别是有以下版本

14.11.25503
14.13.26020
14.15.26726
14.16.27023

可以强制bazel使用特定版本吗?默认情况下,它使用第一个(按字母顺序)对我来说不正确。

2 个答案:

答案 0 :(得分:0)

目前尚无官方方法。 这就是bazel搜索MSVC编译器的方式(来自Visual Studio 2017)

# Normally there should be only one child directory under %VC_PATH%\TOOLS\MSVC,
# but iterate every directory to be more robust.
for path in dirs:
    tool_path = str(path) + "\\bin\\HostX64\\x64\\" + tool
    if repository_ctx.path(tool_path).exists:
        break

基本上,它将使用cl.exe

首次找到目录

一种解决方法可能只是重命名/移动您不需要的所有子目录,而无需修改一个子目录。 真正的方法是更改​​源代码并重新编译bazel:)

答案 1 :(得分:0)

Bazel 现在读取 BAZEL_VC_FULL_VERSION,除 BAZEL_VC 外还设置。

set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC
set BAZEL_VC_FULL_VERSION=14.16.27023

这是为 Visual Studio 2017 和 2019 添加的。较旧的 VS 版本不支持它。

Source: Bazel Windows documentation