'Link a bunch of stuff together to create an executable or
shared library file.
The "bunch of stuff" consists of the list of object files supplied
as \'objects\'.  \'output_filename\' should be a filename.  If
\'output_dir\' is supplied, \'output_filename\' is relative to it
(i.e. \'output_filename\' can provide directory components if
needed).
\'libraries\' is a list of libraries to link against.  These are
library names, not filenames, since they\'re translated into
filenames in a platform-specific way (eg. "foo" becomes "libfoo.a"
on Unix and "foo.lib" on DOS/Windows).  However, they can include a
directory component, which means the linker will look in that
specific directory rather than searching all the normal locations.
\'library_dirs\', if supplied, should be a list of directories to
search for libraries that were specified as bare library names
(ie. no directory component).  These are on top of the system
default and those supplied to \'add_library_dir()\' and/or
\'set_library_dirs()\'.  \'runtime_library_dirs\' is a list of
directories that will be embedded into the shared library and used
to search for other shared libraries that *it* depends on at
run-time.  (This may only be relevant on Unix.)
\'export_symbols\' is a list of symbols that the shared library will
export.  (This appears to be relevant only on Windows.)
\'debug\' is as for \'compile()\' and \'create_static_lib()\', with the
slight distinction that it actually matters on most platforms (as
opposed to \'create_static_lib()\', which includes a \'debug\' flag
mostly for form\'s sake).
\'extra_preargs\' and \'extra_postargs\' are as for \'compile()\' (except
of course that they supply command-line arguments for the
particular linker being used).
\'target_lang\' is the target language for which the given objects
are being compiled. This allows specific linkage time treatment of
certain languages.
Raises LinkError on failure.'

def link(self, target_desc, objects, output_filename, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None):

    raise NotImplementedError
