Search notes:

gcc -M

Show dependencies of compilation units, including system header files. The printed output of dependencies is suitable to be copy-pasted into a Makefile.
In order to not include system header files, use gcc -MM.

Demonstration - Source files

The output of gcc -M is demonstrated with the following three trivial compilation units and corresponding header files:
main.c:
#include "hello-world.h"

int main() {

  hello_world();

}
Github repository about-gcc, path: /options/M/main.c
hello-world.c:
#include "hello-world.h"

void hello_world() {
  print_line("Hello world");
}
Github repository about-gcc, path: /options/M/hello-world.c
hello-world.h:
#ifndef HELLO_WORLD
#define HELLO_WORLD

#include "print-line.h"

void hello_world();

#endif
Github repository about-gcc, path: /options/M/hello-world.h
print-line.c:
#include "print-line.h"

void print_line(const char* line) {
  printf("%s\n", line);
}
Github repository about-gcc, path: /options/M/print-line.c
print-line.h:
#ifndef PRINT_LINE_H
#define PRINT_LINE_H

#include <stdio.h>

void print_line(const char* line);

#endif
Github repository about-gcc, path: /options/M/print-line.h

Demonstration - output

gcc -M main.c prints
main.o: main.c /usr/include/stdc-predef.h hello-world.h print-line.h \
 /usr/include/stdio.h /usr/include/bits/libc-header-start.h \
 /usr/include/features.h /usr/include/sys/cdefs.h \
 /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
 /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
 /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include/stddef.h \
 /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include/stdarg.h \
 /usr/include/bits/types.h /usr/include/bits/typesizes.h \
 /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
 /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
 /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
 /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
gcc -M hello-world.c prints
hello-world.o: hello-world.c /usr/include/stdc-predef.h hello-world.h \
 print-line.h /usr/include/stdio.h /usr/include/bits/libc-header-start.h \
 /usr/include/features.h /usr/include/sys/cdefs.h \
 /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
 /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
 /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include/stddef.h \
 /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include/stdarg.h \
 /usr/include/bits/types.h /usr/include/bits/typesizes.h \
 /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
 /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
 /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
 /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
gcc -M print-line.c prints
print-line.o: print-line.c /usr/include/stdc-predef.h print-line.h \
 /usr/include/stdio.h /usr/include/bits/libc-header-start.h \
 /usr/include/features.h /usr/include/sys/cdefs.h \
 /usr/include/bits/wordsize.h /usr/include/bits/long-double.h \
 /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
 /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include/stddef.h \
 /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.1/include/stdarg.h \
 /usr/include/bits/types.h /usr/include/bits/typesizes.h \
 /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
 /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
 /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
 /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h

See also

GCC options

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/developm...', 1740143613, '3.129.23.30', 'Mozilla/5.0 App...', NULL) #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/development/languages/C-C-plus-plus/GCC/options/M/index(144): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78