.-(~)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(j0:1033:0)- `--> cat a.h extern int f() { return 5; } .-(~)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(j0:1034:0)- `--> cat 1.c #include "a.h" int main() { void g(); g(); return 0; } .-(~)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(j0:1035:0)- `--> cat 2.c #include "a.h" #include void g() { printf("%d\n", f()); } .-(~)-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------(j0:1036:0)- `--> gcc 1.c 2.c /tmp/ccrAqQEC.o: In function `f': 2.c:(.text+0x0): multiple definition of `f' /tmp/ccQGjSBs.o:1.c:(.text+0x0): first defined here collect2: ld returned 1 exit status