【问题标题】:How to build clang with clang?如何用 clang 构建 clang?
【发布时间】:2012-09-18 14:49:09
【问题描述】:

我已经成功地使用 MSVC 和 MinGW 构建了 clang(3.2)。但我认为这不是“纯粹的”铿锵声。那么有人可以给我一些关于如何使用clang构建clang(Windows / Linux)的说明或材料吗?我们可以独立使用clang吗(不依赖于GCC或MSVC)。谢谢大家!

【问题讨论】:

  • 当你运行configure时,你应该可以定义环境变量CC=clangCXX=clang++
  • 如果那不是纯粹的,那么由另一个由其他东西构建的 clang 构建的 clang 不会仍然是不纯的吗?
  • @delnan:我认为“纯”意味着“自托管”。如果clang1是由MinGW构建的,那么clang2是由clang1构建的,以此类推。如果步骤 N 上的可执行文件与步骤 N-1 上的可执行文件一致,则它是“纯”的。当然只是个玩笑:)
  • 这可能被称为如何引导 clang
  • this question我完整描述了“引导”的过程。

标签: c++ c clang


【解决方案1】:

好吧,获得像 3.1 这样的旧版本的 clang。 (您几乎可以安装为您的操作系统预编译的任何版本)

获取更新版本(如 3.2)的源代码。

那么(我喜欢 cmake+ninja (http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html))

如果你将 llvm 源解压到 ~/llvm_source/llvm

cd ~/llvm_source
mkdir build
cd build
CXX=clang++ CC=clang cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release
ninja

如果你想要它来制作

CXX=clang++ CC=clang cmake ../llvm -DCMAKE_BUILD_TYPE=Release
make

就是这样。

玩得开心。

【讨论】:

  • 我正在尝试使用 $HOME 中现有的本地 clang 构建来构建 LLVM。我尝试了 CC=$/HOME/llvm_build/bin/clang CXX=..... cmake ../llvm_src -G Ninja,同时启用了 LLVM_ENABLE_LLD。构建(不知何故)仍然使用 /usr/bin/cc 和 /usr/bin/c++,因此会导致错误。我应该如何解决这个问题?
  • clang 自带 make 吗?还是必须在 Windows 上使用 Mingw32-make?
【解决方案2】:

目前的方法(截至 2017 年 2 月 27 日)似乎如下,

cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++  $LLVM_SRC_DIR # -G Ninja

CMAKE_C_COMPILER 和 CMAKE_CXX_COMPILER 是由-D 定义的 CMake 变量。不知何故,这些变量没有出现在 llvm_src/CMakeLists.txt

【讨论】:

  • 您应该定义可执行文件的完整路径。
  • 只用 cmake -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) $LLVM_SRC_DIR # -G Ninja
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 2017-01-20
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多