プログラムが一つのソースファイルから構成される場合のコンパイルと実行方法です。
* プログラムが複数のソースファイルから構成される場合については後述。
ターミナルからソースファイルのあるディレクトリに移動して次を実行。
% cc ソースファイル名
コンパイルに成功する(エラーが何もないと)とカレントディレクトリに a.out
なる実行ファイルが出来上がる。実行方法は次の通り。
% ./a.out
UNIX系 OS の場合,C のコンパイラは標準で付属するが,そうでない場合,自らがフリーのものをダウンロードしてインストールするか,商用版(有料)を使うしかない。この場合,コンパイル方法は各コンパイラのマニュアルを参照のこと。
DOSプロンプト(コマンドプロンプト,cmd.exe)からソースファイルのあるディレクトリに移動し次を実行。
> bcc32 xxx.c
コンパイルに成功する(エラーが何もないと)と xxx.exe
なる実行ファイルが出来上がる。実行方法は次の通り。
> xxx
a.out
の由来
C言語の作者 Dennis M. Ritchie によると the output of the assembler
の意。アセンブラ(assembler)とは,CPUが理解できる機械語に翻訳するもので,元のファイルはニーモニック(mnemonics)と呼ばれる略語で記述するアセンブリ言語で書く。アセンブリ言語は CPUによって異なるのに対し,C言語はコンパイラがアセンブリ言語に翻訳するため移植性が高い。
C言語のソースファイルをアセンブリ言語に翻訳させるには,
% cc -S xxx.c
とすれば良い。すると,拡張子 .s
が付いたアセンブリ言語ファイルができる。これから実行ファイルを作るには,
% cc xxx.s
とすれば良い。出来上がるのが a.out
である。
実行ファイルからアセンブリを見ることもできる。(「逆アセンブル」と呼ばれている。)コマンド gdb
で開き,disassemble main
と打てば良い。
% gdb a.out
...
(gdb) disassemble main