1

I am compiling mupdf with a custom version of some functions in mupdf library. There are two functions that seem to call each other so when I create the _custom version of them an error is issued at compile time.

pc@pc:~/sviluppo/mupdf-0.9$ make
CC build/debug/obj_print.o
fitz/obj_print.c: In function ‘fmt_array_custom’:
fitz/obj_print.c:191:4: warning: implicit declaration of function ‘fmt_obj_custom’
fitz/obj_print.c: At top level:
fitz/obj_print.c:304:13: warning: conflicting types for ‘fmt_obj_custom’
fitz/obj_print.c:304:13: error: static declaration of ‘fmt_obj_custom’ follows non-static declaration
fitz/obj_print.c:191:4: note: previous implicit declaration of ‘fmt_obj_custom’ was here
make: *** [build/debug/obj_print.o] Errore 1

What's wrong? the default version of the functions already call each other the same way.

Kurt Pfeifle
  • 86,724
  • 23
  • 248
  • 345
P5music
  • 3,197
  • 2
  • 32
  • 81

1 Answers1

1

In line 191, the function fmt_array_custom is called without prior declaration. So the compiler implicitly assumes a declaration (non-static).

Later in line 304, it sees the actual function declaration/definition which is static. This is a conflict.

For fixing this you can add a declaration before line 191. Just copy the function proto-type (without the body) from line 304.

undur_gongor
  • 15,657
  • 5
  • 63
  • 75