<html devsite>
<head>
  <meta name="project_path" value="/_project.yaml">
  <meta name="book_path" value="/versions/6.3.0/_book.yaml">
</head>
<body>

<h1 class="page-title" id="modules.CcLinkingOutputs">CcLinkingOutputs</h1>

<!-- {% raw %} -->

Helper class containing CC compilation outputs.

<h2>Members</h2>
<ul>
    <li>
    <a href="#executable">executable</a>
  </li>
      <li>
    <a href="#library_to_link">library_to_link</a>
  </li>
  </ul>

      <h2 id="executable">executable</h2>
        <p><pre class="rule-signature"><a class="anchor" href="File.html">File</a> CcLinkingOutputs.executable</pre></p>

    <a href='File.html'><code>File</code></a> object representing the linked executable.

         May return <code>None</code>.

        <h2 id="library_to_link">library_to_link</h2>
        <p><pre class="rule-signature"><a class="anchor" href="LibraryToLink.html">LibraryToLink</a> CcLinkingOutputs.library_to_link</pre></p>

    <a href='LibraryToLink.html'><code>LibraryToLink</code></a> for including these outputs in further linking.

         May return <code>None</code>.


</body>
</html>

<!-- {% endraw %} -->
