class_docstr: Abstract base class to define the interface that must be implemented
  by real compiler classes.  Also has some utility methods used by
  several compiler classes.
  
  The basic idea behind a compiler abstraction class is that each
  instance can be used for all the compile/link steps in building a
  single project.  Thus, attributes common to all of those compile and
  link steps -- include directories, macros to define, libraries to link
  against, etc. -- are attributes of the compiler instance.  To allow for
  variability in how individual files are treated, most of those
  attributes may be varied on a per-compilation or per-link basis.
class_docstr_tok: ["Abstract","base","class","to","define","the","interface","that","must","be","implemented","by","real","compiler","classes",".","Also","has","some","utility","methods","used","by","several","compiler","classes",".","The","basic","idea","behind","a","compiler","abstraction","class","is","that","each","instance","can","be","used","for","all","the","compile\/link","steps","in","building","a","single","project",".","Thus",",","attributes","common","to","all","of","those","compile","and","link","steps","--","include","directories",",","macros","to","define",",","libraries","to","link","against",",","etc",".","--","are","attributes","of","the","compiler","instance",".","To","allow","for","variability","in","how","individual","files","are","treated",",","most","of","those","attributes","may","be","varied","on","a","per-compilation","or","per-link","basis","."]
docstr: Add 'libname' to the list of libraries that will be included in
  all links driven by this compiler object.  Note that 'libname'
  should *not* be the name of a file containing a library, but the
  name of the library itself: the actual filename will be inferred by
  the linker, the compiler, or the compiler class (depending on the
  platform).
  
  The linker will be instructed to link against libraries in the
  order they were supplied to 'add_library()' and/or
  'set_libraries()'.  It is perfectly valid to duplicate library
  names; the linker will be instructed to link against libraries as
  many times as they are mentioned.
docstr_tok: ["Add","'libname","'","to","the","list","of","libraries","that","will","be","included","in","all","links","driven","by","this","compiler","object",".","Note","that","'libname'","should","*","not","*","be","the","name","of","a","file","containing","a","library",",","but","the","name","of","the","library","itself",":","the","actual","filename","will","be","inferred","by","the","linker",",","the","compiler",",","or","the","compiler","class","(","depending","on","the","platform",")",".","The","linker","will","be","instructed","to","link","against","libraries","in","the","order","they","were","supplied","to","'add_library","(",")","'","and\/or","'set_libraries","(",")","'",".","It","is","perfectly","valid","to","duplicate","library","names",";","the","linker","will","be","instructed","to","link","against","libraries","as","many","times","as","they","are","mentioned","."]
code: def add_library(self, libname):
      """Add 'libname' to the list of libraries that will be included in
      all links driven by this compiler object.  Note that 'libname'
      should *not* be the name of a file containing a library, but the
      name of the library itself: the actual filename will be inferred by
      the linker, the compiler, or the compiler class (depending on the
      platform).
  
      The linker will be instructed to link against libraries in the
      order they were supplied to 'add_library()' and/or
      'set_libraries()'.  It is perfectly valid to duplicate library
      names; the linker will be instructed to link against libraries as
      many times as they are mentioned.
      """
      self.libraries.append(libname)
  
imports: import sys
  import os
  import re
  import warnings
  from .errors import CompileError, LinkError, UnknownFileError, DistutilsPlatformError, DistutilsModuleError
  from .spawn import spawn
  from .file_util import move_file
  from .dir_util import mkpath
  from ._modified import newer_group
  from .util import split_quoted, execute
  from ._log import log
label_desc: Use image node_id 10 for calling the CCompiler obj's underlying member method code with example usage: obj.add_library(libname) without return types