The compiler is happy. But probably linker "hates" you!

You need to supply more information for the linker to generate the final exetutable binary. This may include, adding some more source files to your compilation, or the existing library (.so, .lib etc).

As an example:
Code:
int foo(int);
int main()
{
int x = foo(10);
return 0;
}
Here the compiler would be happy, but linker would complain for 'foo'. Now, this 'foo' can be in other source (.CPP) files, or may be in other library. You need to tell the linker about it.