Shaders not linking can be caused by a few things. One of them is that the shaders are not comiled correctly. The tool I use for finding problems with my shaders is gDEBuggergDEBugger (there are two versions to go with, you can read that question/answer to find out more, I found that the original (older) version has worked better for me). I recommend you download this and see what errors are being reported in your shader loading.
You can also have your program output the last error code after each operation. To see where things might be going wrong. Though, I've found at least one time where my shaders were not linking and no errors were being reported with my code. But once I got it loaded up in gDEBugger, I was able to find the issue.