undefined reference when calling inline function
According to the manual, passing -std=gnu11
enables C99 instead of GNU inline semantics.
This means inline
, static inline
and extern inline
all behave differently. In particular, inline
expects an external definition in a separate translation unit (which you can provide without duplicating the definition - see this answer).