如何配置 GN(Google's generate-ninja)/Ninja 使用不同的 clang 工具链

how to configure GN (Google's generate-ninja)/Ninja to use different clang toolchain

我正在使用 GNNinja 构建 Chromium 项目,但遇到以下错误:

$  ninja -C out/Release/

...
...

../../third_party/llvm-build/Release+Asserts/bin/clang++: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ~/client/third_party/llvm-build/Release+Asserts/bin/../lib/libstdc++.so.6)

原因是它使用了项目附带的预建 clang 工具,但是我在 CentOS 7 上,glibc 的固定版本是 GLIBC_2.17,而且我有一个单独的 clang 工具,它没有不需要 GLIBC_2.18,问题是如何配置 GNninja 不使用项目自带的预建 clang?

检查 this page,在 gn gen 命令之后,可以通过编辑 args.gn 文件中的 clang_base_path 参数来覆盖 llvm 工具链位置。