Consider the following short C program:
#include <math.h>
#include <stdio.h>
#define K 20
// int K = 20;
int main() {
printf("%f\n", sqrt(K));
}
This program, as given, compiles with gcc Foo.c, and produces correct output.
However, if we comment out the #define line, and comment in the int K = 20 line, then we get a compile-time error of undefined reference to sqrt', which can only be fixed by compiling with gcc Foo.c -lm.
I am on gcc 4.7.3 on Ubuntu 13.04.