Great question!
It works the same way as stb-style libs: you only #define GIF_IMPLEMENTATION in one .c file (one translation unit). In all other files, you just #include "gif.h" without the define.
The header uses #ifdef GIF_IMPLEMENTATION to include implementation code only once.
So no linker errors — everything compiles cleanly as long as that rule is followed.
I’ll make this clearer in the README too, thanks!
Comments
Great question! It works the same way as stb-style libs: you only #define GIF_IMPLEMENTATION in one .c file (one translation unit). In all other files, you just #include "gif.h" without the define. The header uses #ifdef GIF_IMPLEMENTATION to include implementation code only once. So no linker errors — everything compiles cleanly as long as that rule is followed. I’ll make this clearer in the README too, thanks!