为Bazel指定MSVC版本
Specify MSVC version for bazel
我正在寻找一种告诉Bazel应该使用哪种版本的VC 版本的方法。我已经设置了BAZEL_VC=VS2017CommunityVC
但是问题是我的目录VS2017CommunityVCToolsMSVC
有许多不同的VC 编译器。特别是有以下版本
14.11.25503
14.13.26020
14.15.26726
14.16.27023
有可能强迫巴泽尔使用特定版本吗?默认情况下,它使用第一个(按字母顺序),这对我来说是不正确的。
bazel现在读取BAZEL_VC_FULL_VERSION
,除了BAZEL_VC
之外设置。
set BAZEL_VC=C:Program Files (x86)Microsoft Visual Studio2017BuildToolsVC
set BAZEL_VC_FULL_VERSION=14.16.27023
这是为Visual Studio 2017和2019添加的。旧VS版本不支持它。
来源:Bazel Windows Documentation
当前没有官方方法可以做到。这就是Bazel搜索MSVC编译器的方式(来自Visual Studio 2017)
# Normally there should be only one child directory under %VC_PATH%TOOLSMSVC,
# 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
一个解决方法可能只是为了重命名/移动您不需要的所有子dir,而必要的一个不受欢迎的副本。真正的方法是更改源代码并重新编译Bazel:)
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- MSVC多行宏编译器错误
- 导入库可以跨dll版本工作吗
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- MSVC是否支持C++11样式的属性而不是__declspec
- MSVC将仅移动结构参数解释为指针
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 为Bazel指定MSVC版本
- MSVC OSVersion 返回不正确的版本
- 在 MSVC 中将某些库的目标平台版本设置为 10.x 是否使程序与在 Windows Vista/7/8 上运行不兼容
- 将早期 MSVC 版本生成的代码重新生成为较新版本时可能遇到的问题
- MSVC 2013正在x64内部版本中加载x86系统库
- visual C++默认特殊成员函数的多个版本——MSVC 2015中的错误
- GLib2+MSVC:分叉 GLib2 以制作"light"版本的库
- 检测 GYP 中的 MSVC 版本
- msvc版本中的链接器不匹配.有什么变通办法吗
- 禁用特定MSVC版本的优化
- MSVC在调试构建中链接到发布库,而不是调试版本