<html lang="en">
<head>
<title>Object - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Overview.html#Overview" title="Overview">
<link rel="prev" href="Input-Files.html#Input-Files" title="Input Files">
<link rel="next" href="Errors.html#Errors" title="Errors">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".

Copyright (C) 1991-2019 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled ``GNU Free Documentation License''.

-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
</head>
<body>
<div class="node">
<a name="Object"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Errors.html#Errors">Errors</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Input-Files.html#Input-Files">Input Files</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Overview.html#Overview">Overview</a>
<hr>
</div>

<h3 class="section">1.6 Output (Object) File</h3>

<p><a name="index-object-file-34"></a><a name="index-output-file-35"></a><a name="index-a_002eout-36"></a><a name="index-g_t_002eo-37"></a>Every time you run <samp><span class="command">as</span></samp> it produces an output file, which is
your assembly language program translated into numbers.  This file
is the object file.  Its default name is <code>a.out</code>. 
You can give it another name by using the <samp><span class="option">-o</span></samp> option.  Conventionally,
object file names end with <samp><span class="file">.o</span></samp>.  The default name is used for historical
reasons: older assemblers were capable of assembling self-contained programs
directly into a runnable program.  (For some formats, this isn't currently
possible, but it can be done for the <code>a.out</code> format.)

   <p><a name="index-linker-38"></a><a name="index-ld-39"></a>The object file is meant for input to the linker <code>ld</code>.  It contains
assembled program code, information to help <code>ld</code> integrate
the assembled program into a runnable file, and (optionally) symbolic
information for the debugger.

<!-- link above to some info file(s) like the description of a.out. -->
<!-- don't forget to describe @sc{gnu} info as well as Unix lossage. -->
   </body></html>

