Как печатать зависимости от llvm/clang (эквивалент gcc -MD)? Наша система сборки использует gcc для генерации зависимостей заголовков исходного файла с *.d файлами при компиляции: gcc -MD -MF foo.d -c foo.o foo.cc Однако я не могу понять, как произвести аналогичную работу с llvm clang. Ответ 1 Это точно то же самое: 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 \
Ответ 1 Это точно то же самое: 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 \