class_docstr: Concrete class that implements an interface to the Borland C/C++
  compiler, as defined by the CCompiler abstract class.
class_docstr_tok: ["Concrete","class","that","implements","an","interface","to","the","Borland","C\/C++","compiler",",","as","defined","by","the","CCompiler","abstract","class","."]
code: def create_static_lib(
      self,
      objects,
      output_libname,
      output_dir=None,
      debug=0,
      target_lang=None,
  ):
      (objects, output_dir) = self._fix_object_args(objects, output_dir)
      output_filename = self.library_filename(
          output_libname, output_dir=output_dir
      )
  
      if self._need_link(objects, output_filename):
          lib_args = [output_filename, "/u"] + objects
          if debug:
              pass  # XXX what goes here?
          try:
              self.spawn([self.lib] + lib_args)
          except DistutilsExecError as msg:
              raise LibError(msg)
      else:
          log.debug("skipping %s (up-to-date)", output_filename)
  
file_path: catboost/contrib/tools/python3/src/Lib/distutils/bcppcompiler.py
imports: import os
  from distutils.errors import DistutilsExecError, CompileError, LibError, LinkError, UnknownFileError
  from distutils.ccompiler import CCompiler, gen_preprocess_options
  from distutils.file_util import write_file
  from distutils.dep_util import newer
  from distutils import log
label_desc: Use image node_id 3 for calling the BCPPCompiler obj's underlying member method code with example usage: obj.create_static_lib(objects, output_libname, output_dir, debug, target_lang) without return types