【问题标题】:How to use llvm toolchain on Linux always by default如何在 Linux 上默认使用 llvm 工具链
【发布时间】:2022-01-09 07:02:14
【问题描述】:

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

【问题讨论】:

  • 喜欢使用 g++ .... CXX=g++ cmake ..CXX=g++-9 cmake .. 正在使用 llvm : CXX=clang++ cmake ..
  • @Knud Larsen 无论如何它都会使用 gcc stdlib。

标签: c++ linux build llvm


【解决方案1】:

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

-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++ 

【讨论】:

    猜你喜欢
    • 2018-04-28
    • 2015-06-06
    • 2014-07-03
    • 2011-08-13
    • 2015-10-06
    • 1970-01-01
    • 2014-05-09
    • 2022-12-05
    • 2017-02-08
    相关资源
    最近更新 更多