llvm - 如何从llvm/clang打印依赖项(相当于gcc -MD)?

标签 llvm clang

我们的构建系统在编译时使用gcc将源文件的头文件依赖项生成为* .d文件:

gcc -MD -MF foo.d -c foo.o foo.cc 

但是,我不知道如何使用llvm clang产生类似的输出。

最佳答案

完全一样:

clang -MD -MF foo.d -c foo.o foo.cc 

一个例子:
$ cat example.c 
#include <stdio.h>

int main(int argc, char **argv)
{
  printf("Hello, world!\n");
  return 0;
}

$ clang -MD -MF example-clang.d -c -o example-clang.o example.c

$ gcc -MD -MF example-gcc.d -c -o example-gcc.o example.c

$ cat example-clang.d 
example-clang.o: example.c /usr/include/stdio.h /usr/include/_types.h \
  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
  /usr/include/machine/_types.h /usr/include/i386/_types.h \
  /usr/include/secure/_stdio.h /usr/include/secure/_common.h

$ cat example-gcc.d 
example-gcc.o: example.c /usr/include/stdio.h /usr/include/_types.h \
  /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
  /usr/include/machine/_types.h /usr/include/i386/_types.h \
  /usr/include/secure/_stdio.h /usr/include/secure/_common.h

$ diff example-clang.d example-gcc.d 
1c1
< example-clang.o: example.c /usr/include/stdio.h /usr/include/_types.h \
---
> example-gcc.o: example.c /usr/include/stdio.h /usr/include/_types.h \

关于llvm - 如何从llvm/clang打印依赖项(相当于gcc -MD)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5584435/

相关文章:

c++ - Clang 5.0 和 UBsan 的指针加法和整数溢出?

gcc - 处理 gcov 数据文件以进行跟踪

c++ - 使用 bazel 和 emscripten 构建 Web 程序集

gcc - 如何在 Mac 上使用 Emscripten emcc 和 make 时包含 ncurses

python - llvm-py问题

c - 为什么这个输出来自 perror?

c++ - 未找到“llvm/IR/Constants.h”文件

llvm - 如何获取LLVM中函数调用的参数?

clang - clang :将除…之外的所有警告均提升为错误

c - 等同于其他编译器中 MSVC 的 _countof?