There are quite a few. It’s not unlike linking your C++ program.
Some reasons are listed here: Shader_Compilation#Program_linking. These aren’t all of them however.
I tweaked the markup in your post to highlight this error message (it wasn’t obvious that it was there before).
This sounds like an error that occurred when compiling one of your shaders (either vertex or fragment shader in your case). They each need their own
If one of them failed to compile (as this error message suggests), then as you’d expect, you definitely can’t link them together successfully into a program.
Re forum markup, see this page for tips. For blocks of code and error messages, see this section: this section. Update: Here’s another quick ref (better for fast reference): Markdown reference.