A dependency describes a thing necessary for a program to compile or run. In general, dependencies are libraries that need to be linked (whether at compile-time or at run-time). Of course, some necessary tool (like yacc or lex) could also be a dependency.