/ / Comment imprimer les dépendances à partir de llvm / clang (équivalent de gcc -MD)? - llvm, clang

Comment imprimer des dépendances à partir de llvm / clang (équivalent de gcc -MD)? - llm, clang

Notre système de construction utilise gcc pour générer des dépendances d’en-tête du fichier source en fichiers * .d, lors de la compilation:

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

Cependant, je ne peux pas comprendre comment produire des résultats similaires avec llvm clang.

Réponses:

19 pour la réponse № 1

C’est exactement pareil:

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

Un exemple:

$ 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