To expand on what Eagletalon said, linker errors are usually not caused by a syntax error in a line of code. They are caused because the linker can’t find something it needs, it finds too many of something, or pieces don’t match.

Quick lesson (which you may already know): Linkers and compilers are two different beasties. Compilers change your “Human Readable” code into machine code. Linkers take all the machine code pieces that the compiler spit out and connect them together. Most development environments automatically run the compiler and then the linker, and you don’t have to think about it. Back in the old days, this was not true.

When you get linker errors, this means that the linker is not able to connect up all the pieces. A common reason is that you are missing a header. You may have a function declaration that does not match the function. Another possibility is that there is some problem in you code that causes a piece of it to not compile. Then the linker cannot find that piece. This can be caused by errors, particularly mismatched braces, in the sections above.

The first step is to completely rebuild the program. That is, you want to recompile every module, and re-link them. Some development environments allow you to do this with a simple “Rebuild” command. Others require you to do a “Clean” first.

If the linker says it can’t find a particular function, put the function name in your IDE’s “Find”, and see if YOU can find it. You may have a capitalization error. Check your headers. Did you include the all the “.h” files you need?