3. コマンドプロンプトからコンパイル

コマンドプロンプトは、キーボードからコマンドを入力することにより、ファイル操作やプログラム実行ができるプログラムである。  Explorer を用いて行う操作のほとんどをコマンドプロンプトから実行することが可能であり、スクリプトによるバッチ処理や、リダイレクトやパイプと呼ばれる機能を用いて、プログラムの結果を別のプログラムに渡したりファイルに出力したりといった処理を用意に行うことができる。

この章ではコマンドプロンプトを用いて、Z:\prog1\hello1 ディレクトリを作成し、ソースファイルの作成、コンパイルまでを実習する。

以下、実際に操作を行う部分は赤字で示してある。

3.1 コマンドプロンプトの基本操作

3.1.1 コマンドプロンプトの起動

[スタートメニュー]->[プログラム] から [Visual C++ コマンドプロンプト] をクリックする。以下のようなコマンドプロンプトウインドウが起動する。

3.1.2 カレントディレクトリとファイルの一覧 (DIR コマンド)

プログラムには、操作の対象となるディレクトリ(フォルダと同義)があり、これをカレントディレクトリと呼ぶ。コマンドプロンプトを起動すると、左上部に Z:\> のように表示されていると思うが、 これがカレントディレクトリである。

ファイルの一覧を表示するには、DIR コマンドを使用する。 (なお Windows の場合には、コマンドの大文字小文字は区別されない。)

コマンドプロンプトから dir と入力し、エンターキーを押す。その出力を確認する。マイコンピュータからZドライブを開き、その一覧を比較する。

3.1.3 ディレクトリの作成とカレントディレクトリの移動

ディレクトリを作成するには、MKDIR コマンド(make directory コマンド)を使用する。 コマンド名の後にスペースで区切って記述する文字列を引数と呼ぶが、mkdirコマンドの場合には、新たに作成するディレクトリ名を引数として渡す。

mkdir ディレクトリ名

コマンドプロンプトから mkdir prog1 と入力し、prog1 ディレクトリを作成する。Z:\ を開いているエクスプローラから、[表示]メニューの[最新の情報に更新]をクリックし(もしくはF5キーを押し)、prog1 ディレクトリが作成されていることを確認する。

カレントディレクトリを移動するには、 CD コマンド(change directory コマンド) を使用する。CDコマンドの引数には、移動先のディレクトリ名を与える。

cd prog1 と入力し、カレントディレクトリの表示が変わることを確認する。

ひとつ上のディレクトリ(親ディレクトリ)は、.. (ピリオド二つ)で表すことができる。

cd .. と入力し、カレントディレクトリが Z:\ に移動することを確認する。

再び prog1 にカレントディレクトリを移動し、その下に hello1 ディレクトリを作成し、hello1ディレクトリにカレントディレクトリを移動する。

3.1.3の一連の流れを以下に示す。

Z:\>mkdir prog1  ←prog1 ディレクトリの作成

Z:\>cd prog1    ←prog1 ディレクトリへ移動

Z:\prog1>cd ..

Z:\>cd prog1

Z:\prog1>mkdir hello1

Z:\prog1>cd hello1

Z:\prog1\hello1>

3.2 プログラムの作成

3.2.1 ソースファイルの編集

ソースファイルの編集は、Windows 標準の簡易テキストエディタであるメモ帳を用いて行う。

コマンドプロンプトから、以下のように入力する。

Z:\prog1\hello1>notepad hello1.c

メモ帳が起動し、ファイル hello1.c を新たに作成するか聞かれるので、[はい(Y)] を選ぶ。

メモ帳の実態は、notepad.exe という名前の実行ファイルである。コマンドプロンプトから実行ファイル名を指定することにより、プログラムを起動することができる。
notepad.exe は引数としてオープンするファイル名を受け取る。この場合、hello1.c ファイルはまだ存在していなかったので、新規に作成するかを確認するダイアログがオープンした。

以下に示した hello1.c は、コンソール(コマンドプロンプト画面)に、hello world と表示するプログラムである。

メモ帳で、C言語のソースを入力する。以下の hello1.c の内容をコピー&ペーストで入力し、[ファイル]メニューの[上書き保存] を選択し、保存する。
(WEB画面では見易くするために字下げは複数のスペースで行われている。ソース下の download をクリックすると、字下げにTABが使われているオリジナルのソースコードを表示できる。)

hello1.c

3.2.2 ファイル内容の確認

再びコマンドプロンプトに戻り、ファイルの内容を確認する。

まず、DIR コマンドを用いて、hello1.c ファイルが作成されていることを確認する。

テキストファイルの内容をコマンドプロンプト上で確認するには、 MORE コマンドを使用する。MORE コマンドは、表示するファイル名を引数として受け取る。

コマンドプロンプトから more hello1.c と入力する。ファイルの内容が表示されるので、正しく入力されていることを確認する。

3.2.3 コンパイル

Visual C++ コンパイラ を起動するコマンドは cl である(compile & link)。 ソースファイル名を引数として渡す。

cl hello1.c と入力し、コンパイルを実行する。コンパイル実行後にDIRコマンドにより、生成されたファイルを確認する。

Visual C++ 処理系では、オブジェクトファイル、実行ファイルの拡張子はそれぞれ、*.obj、*.exe となる。

3.2.4 プログラムの実行

hello1.exe が生成されたことを確認したら、コマンドプロンプトより hello1 と入力し実行する。

以下に、コンパイルから実行までの一連の操作を示す。

Z:\prog1\hello1>cl hello1.c  ←コンパイルの実行
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86
Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

hello1.c
Microsoft (R) Incremental Linker Version 6.00.8168
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

/out:hello1.exe
hello1.obj

Z:\prog1\hello1>dir             ←生成されたファイルの確認
ドライブ Z のボリューム ラベルは . です
ボリューム シリアル番号は 0586-048E です

Z:\prog1\hello1 のディレクトリ

2004/04/12 05:23 <DIR> .
2004/04/12 04:49 <DIR> ..
2004/04/12 05:23 115 hello1.c
2004/04/12 05:23 452 hello1.obj      ←オブジェクトファイル
2004/04/12 05:23 28,672 hello1.exe  ←実行ファイル
3 個のファイル 29,239 バイト
2 個のディレクトリ 39,088,816,128 バイトの空き領域

Z:\prog1\hello1>hello1
     ←プログラムの実行
hello world!             
←実行結果