code: def CCompiler_object_filenames(
      self, source_filenames, strip_dir=0, output_dir=""
  ):
      """
      Return the name of the object files for the given source files.
  
      Parameters
      ----------
      source_filenames : list of str
          The list of paths to source files. Paths can be either relative or
          absolute, this is handled transparently.
      strip_dir : bool, optional
          Whether to strip the directory from the returned paths. If True,
          the file name prepended by `output_dir` is returned. Default is False.
      output_dir : str, optional
          If given, this path is prepended to the returned paths to the
          object files.
  
      Returns
      -------
      obj_names : list of str
          The list of paths to the object files corresponding to the source
          files in `source_filenames`.
  
      """
      if output_dir is None:
          output_dir = ""
      obj_names = []
      for src_name in source_filenames:
          base, ext = os.path.splitext(os.path.normpath(src_name))
          base = os.path.splitdrive(base)[1]  # Chop off the drive
          base = base[
              os.path.isabs(base) :
          ]  # If abs, chop off leading /
          if base.startswith(".."):
              # Resolve starting relative path components, middle ones
              # (if any) have been handled by os.path.normpath above.
              i = base.rfind("..") + 2
              d = base[:i]
              d = os.path.basename(os.path.abspath(d))
              base = d + base[i:]
          if ext not in self.src_extensions:
              raise UnknownFileError(
                  "unknown file type '%s' (from '%s')" % (ext, src_name)
              )
          if strip_dir:
              base = os.path.basename(base)
          obj_name = os.path.join(output_dir, base + self.obj_extension)
          obj_names.append(obj_name)
      return obj_names
  
imports: import os
  import re
  import sys
  import platform
  import shlex
  import time
  import subprocess
  from copy import copy
  from pathlib import Path
  from distutils import ccompiler
  from distutils.ccompiler import compiler_class, gen_lib_options, get_default_compiler, new_compiler, CCompiler
  from distutils.errors import DistutilsExecError, DistutilsModuleError, DistutilsPlatformError, CompileError, UnknownFileError
  from distutils.sysconfig import customize_compiler
  from distutils.version import LooseVersion
  from numpy.distutils import log
  from numpy.distutils.exec_command import filepath_from_subprocess_output, forward_bytes_to_stdout
  from numpy.distutils.misc_util import cyg2win32, is_sequence, mingw32, get_num_build_jobs, _commandline_dep_string, sanitize_cxx_flags
  import threading
label_desc: Use image node_id 5 for calling a global function with example usage: CCompiler_object_filenames(source_filenames, strip_dir, output_dir) and returns: obj_names