默认情况下,如何始终在 Linux 上使用 llvm 工具链

How to use llvm toolchain on Linux always by default

我正在尝试构建 linux docker 图像,它将始终默认使用 clang 和 llvm 库(compiler-rt、libunwind、libc++,...)进行构建。我看过 this question,但它使用 CMake 变量。我不想对项目本身进行任何编辑,因此默认情况下始终使用 llvm。我怎样才能做到这一点?

您必须使用特殊标志构建 llvm (full info):

-DLIBCXX_USE_COMPILER_RT=YES      # compiler-rt in libc++
-DLIBCXXABI_USE_LLVM_UNWINDER=YES # libunwind in libc++
-DCLANG_DEFAULT_CXX_STDLIB=libc++ # libc++ as std lib in clang by default
-DCLANG_DEFAULT_RTLIB=compiler-rt # compiler-rt in clang by default

并更新 cc/c++ 链接:

update-alternatives --install /usr/bin/cc cc /usr/bin/clang 800 \ 
                    --slave /usr/bin/c++ c++ /usr/bin/clang++