Both are true
in static linking, each object code(executable file) produced by compiler should come with its library routine before load. so all the shared files or other files referenced by the object codes are linked with them at link time
at run time , those shared routines are replaced by stub or glue code which is replaced by actual code at run time. Hence linking of all the object files with their references(can be shared file, library routines etc) is done at run time and only called routines are loaded.