clang如何以及在哪里使用llvm?

clang如何以及在哪里使用llvm?,c,gcc,compiler-construction,clang,llvm,C,Gcc,Compiler Construction,Clang,Llvm,使用如下命令时: clang -### -O3 -a.c 然后,它将输出以下内容: clang version 1.1 (branches/release_27) Target: x86_64-unknown-linux-gnu Thread model: posix "/tensorflow/bin/llvm+clang-2.7/bin/clang" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-S" "-disable-free" "-mai

使用如下命令时:

clang -### -O3 -a.c
然后,它将输出以下内容:

clang version 1.1 (branches/release_27)
Target: x86_64-unknown-linux-gnu
Thread model: posix
 "/tensorflow/bin/llvm+clang-2.7/bin/clang" "-cc1" "-triple" "x86_64-unknown-linux-gnu" "-S" "-disable-free" "-main-file-name" "a.c" "-mrelocation-model" "static" "-mdisable-fp-elim" "-mconstructor-aliases" "-munwind-tables" "-target-cpu" "x86-64" "-resource-dir" "/tensorflow/bin/llvm+clang-2.7/lib/clang/1.1" "-O3" "-fmessage-length" "141" "-fgnu-runtime" "-fdiagnostics-show-option" "-fcolor-diagnostics" "-o" "/tmp/cc-w9Hpfd.s" "-x" "c" "a.c"
 "/usr/bin/gcc" "-O3" "-c" "-m64" "-o" "/tmp/cc-8haDzc.o" "-x" "assembler" "/tmp/cc-w9Hpfd.s"
 "/usr/bin/gcc" "-O3" "-m64" "-o" "a.out" "/tmp/cc-8haDzc.o"
因此,我们可以看到llvmllvm-2.7的早期版本使用了gcc的汇编程序和链接器

但是,clang在何时何地如何使用llvm

clang是否在clang-cc1中使用llvm

如何证明呢?文档或命令行输出都可以作为证据。但是我找不到它

我认为llvm+clang是一个灵活的工具链,我可以找到许多方法从C程序生成可执行文件

提前感谢。

使用:

clang -v -o demo a.c

-v提供了很多信息,包括/usr/lib中使用的llvm版本,Clang将llvm用作库,即llvm是Clang可执行文件的一部分。@AlexDenisov出于好奇,它实际上是静态链接的吗?仅供参考:您可以使用nm和/或ldd来回答这类问题,几乎任何工具都可以。@JoseFernandoLopezFernandez它取决于构建:它可以静态链接,也可以动态链接。