「コマンドプロンプト」でコンパイルする方法をもう少し探ってみます。

 今度は、「Visual C++ 2005 Express Edition」のヘルプで「環境変数」というキーワードで検索。すると、

コマンド ライン ビルドのパスと環境変数の設定」のページに

vcvars32.bat

というバッチファイルを起動すれば、コマンドプロンプトでコンパイルできる、とあるのを見つけました。というわけで、このファイルが入っているフォルダを先ず見つけ出した後で、「コマンドプロンプト」内で、このファイルがあるディレクトリ(フォルダ)まで移動し、

vcvars32.bat

と入力しEnterキーを押します。すると、表示されたものの最後に、

Setting environment for using Microsoft Visual Studio 2005 x86 tools

と表示されました。おそらくこれでコンパイルする環境が整ったようです。というわけで、

tsundere.c

コマンドプロンプトでコンパイルしてみます。

cl tsundere.c

と入力しEnterキーを押します。すると、

/out:tsundere.exe
tsundere.obj


と表示されました。

大成功!

ついにできました。しかし、一度「コマンドプロンプト」を閉じて再び「コマンドプロンプト」を起動してコンパイルを試してみると出来ませんでした。おそらく、「環境変数」を設定しないと、「コマンドプロンプト」を起動するたびにvcvars32.batを起動しないといけないんでしょう。

 ここで少し考察。コマンドプロンプトで環境変数を表示するコマンド名「path」は、「道、道筋」の意味です。IT用語辞典にも、同様の記述がありました。そこから推測するに、「環境変数を設定する」というのは、「使いたいアプリケーション(ここではコンパイラ)までの道筋をあらかじめ指定し、いつでも使うことが出来るようにする」ことなのだと思います。

 というわけで、「コマンドプロンプト」でもコンパイルする事ができるようになりました。「環境変数の設定」に関する疑問が残りましたが保留とし、先に進むことにします。今回、「コマンドプロンプト」という、真っ黒な画面のウィンドウの文字だけの世界を体験した事で、今までよりも少しパソコンの深層を覗いた気がします。コンパイルするだけでも大変な困難でしたが、これで、自分で書いたプログラムを動かせるところまで来ました。また、「Visual C++ 2005 Express Edition」のヘルプの「コンパイラ オプション」のページの「カテゴリ別のコンパイラ オプション」を見ると、コンパイルする時に最大限に最適化したり、実行速度を優先したものにしたりといった細かな指定が出来るようです。C言語にもっと習熟したら、もう一度コンパイルについて考えてみようと思います。
2008.04.07 Mon l C TB(0) l top ▲
 「Visual Studio 2005 コマンドプロンプト」を使ってコンパイルする事に成功しました。

しかし、ひとつ問題が残りました。

「Visual Studio 2005 コマンドプロンプト」ではコンパイル出来たのに「コマンドプロンプト」ではコンパイルできなかった

のです。

「コマンドプロンプト」で、

cl tsundere.c

と入力してEnterキーを押してみたのですが、

'cl' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチファイルとして認識されていません。


と表示されました。コンパイルするためのコマンド「cl」が命令として認識されていないのでコンパイルが出来ないようです。

 では、どうすれば「コマンドプロンプト」にコマンド「cl」を認識させる事が出来るのか?少し探ってみる事にしました。 

 C言語をコンパイルできるコンパイラは他にもたとえば

Borland C++ Compiler 5.5

というコンパイラがあります。これを使ってコンパイルするには使う前に「環境変数の設定」が必要とのこと。

環境変数」とは、Windowsの「ヘルプとサポート」によると、

Windows で使用できるシンボリック名と関連付けられた、ドライブ、パス、ファイル名などの環境情報で構成される文字列。環境変数を定義するには、コントロール パネルの [システム] を利用するか、コマンド プロンプトで set コマンドを実行します。

とあります。私は「Visual C++ 2005 Express Edition」をインストールした時に、「環境変数の設定」というものをしていません。そんなくだりは無かったので。つまり、「Visual Studio 2005 コマンドプロンプト」のほうはインストールの際に環境設定がおそらく自動的にされたのに対し、「コマンドプロンプト」では設定されていないのだと考えました。では、どのように設定すればいいのか。そこで、Windowsの「ヘルプとサポート」で「環境変数」で検索してみました。検索結果を読んでみました。それに従って、コントロールパネルのシステムの「詳細設定」タブの中にある環境変数をクリックすると、環境変数を色々と変更できるウィンドウが現れました。「Borland C++ Compiler 5.5」をインストールして使えるようにする方法から推測は出来るのですが、ちょっとまだ私の頭ではいまいち理解し難(がた)いので、ここで中断する事にしました。

また、「コマンドプロンプト」で、

path

というコマンドを実行してみると、設定済みの環境変数が表示される事がわかりました。で、早速実行。すると、「Visual Studio 2005 コマンドプロンプト」と「コマンドプロンプト」では環境変数の内容に違いがあることが分かりました。ですが、これをどういじっていいのか分からないのでこれも一時保留します。

part.6へ続く)
2008.04.07 Mon l C TB(0) l top ▲
 本題です。コンパイルしてみます。

 たとえば、プログラミングの世界で有名な小さなプログラム「Hello, World」の文字の部分を変えてみた、


#include

int main(void)
{
printf("べ、別にあんたのためにコンパイルしてるんじゃないんだからね。");

return 0;
}




なんてものを、メモ帳に書いて、ファイル名に「tsundere.c」として保存。C言語のファイルとしたいので、

拡張子は「.c」

としておく。

 次に、コマンドプロンプトでそのファイルがあるところまで移動。コマンドプロンプトで「chdir(cd)」コマンドを使って移動するのが面倒な場合は、コマンドプロンプトを使わずにファイルをカット&ペーストしてファイルを今コマンドプロンプトで表示されているフォルダに移動。今回は、「コマンドプロンプト」と「Visual Studio 2005 コマンドプロンプト」の両方でコンパイルを試すので、別のフォルダにファイルをコピーしておきました。

そして、

cl tsundere.c

と入力してEnterキーを打つと、コンパイルされるはず。すると、

「Visual Studio 2005 コマンドプロンプト」では、画面に表示されたものの最後の部分に

/out:tsundere.exe
tsundere.obj


と表示されて、アプリケーションの拡張子「.exe」が付いたものができたようです。tsundere.objがなにものかは今はまだ分かっていません。Windows上でもこの2つのファイルが確かにあります。「Visual Studio 2005 コマンドプロンプト」上でコマンド「dir」を入力しても2つのファイルが出来たことが分かります。

とうとうやってきました、自分で作ったプログラムを実行する時が。

tsundere.exe

と入力してEnterキーを打つと、

べ、別にあんたのためにコンパイルしてるんじゃないんだからね。

と表示されました。

成功です。

ひとつ壁を越えました。まだグラフィカルなものではない、文字だけを表示する、たったそれだけのプログラムです。真っ黒な画面に白色の文字が表示されるだけです。それだけなんですが、嬉しいです。これからはプログラムを書いたらすぐにコンパイルして実行するところまで出来ます。書いたプログラムにエラー(間違い)があると、報告してくれるようですが、今回は何の問題も無かったようでした。ちなみに、

tsundere

と拡張子を外したものを入力してEnterキーを押しても実行されるようです。

 これで自分で書いたプログラムをコンパイルして実行する事が出来るようになりました。

part.5へ続く)
2008.04.07 Mon l C TB(0) l top ▲
 コマンドプロンプトでは、今自分が開いている場所を

[ドライブ名]:¥[フォルダ名]¥[フォルダ名]>
(¥という円記号が半角では上手く表示されないようなので、全角で表示しています。)

のような形で表示されていて、「>」の横にカーソルがありそこにコマンド(コマンドプロンプトへの命令)を入力して、Enterキーを押すと、コマンドが実行されます。コマンドは、「ヘルプとサポート」内の「コマンドラインリファレンス」によると、150以上ものコマンドがあるようで、色んな操作が出来るらしい。コマンドを使って出来る事には、フォーマットやら、削除やら、設定変更やらちょっと使うのが怖いコマンドもあるので、まず出来そうなものを探していくつか試してみました。

 たとえば、

dir

というコマンド。directory(ディレクトリ)という単語を略した名前のこのコマンド。この3文字だけ入力してEnterキーを押すと、今いる(表示されている)フォルダの中身を見ることができます。ファイルとそのフォルダの中にあるフォルダが表示されます。実行してみて分かったのですがフォルダの事をディレクトリと呼ぶようです。ネットで調べてみたら、ディレクトリとフォルダの意味のようです。

chdir [今いるディレクトリ(フォルダ)の中にあるディレクトリ名]

もしくは

cd [今いるディレクトリ(フォルダ)の中にあるディレクトリ名]

を書いてEnterキーを押すと、そのディレクトリに移動します。コマンドプロンプトに入力する時には大かっこ([ ])は外します。空白は1つ空いていれば十分です。コマンド名はChange directory(ディレクトリを変更する)という意味です。ひとつ上の階層のディレクトリに戻る時は

chdir .. (もしくはcd ..)

のようにスペースで空けてピリオド二つだけ打ち込んでからEnterキーを打つと、ひとつ上の階層(フォルダ)に戻ります。さらに、

chdir /d [ドライブ名:\]

と入力すれば、別のドライブに移動する事が出来ます。他にも様々なコマンドがあっていろんな操作がが出来るようですが、今回は自分がコマンドプロンプトに慣れることが目的なので、いずれもっと操作できるようになりたいと思います。

part.4へ続く)
2008.04.07 Mon l C TB(0) l top ▲
 コマンドプロンプトでコンパイルをする場合、「Visual C++ 2005 Express Editionのコンパイラ」では、

cl [拡張子(.cやcpp)を含めたファイル名]
(clの後ろは空白(スペース)で空けて,大かっこ[ ]は外す) 

と入力してEnterキーを打てば、コンパイルする事が出来て、次に

[ファイル名]

を入力してEnterキーを打てば、プログラムが実行されるらしいことは分かりました。

 というわけで、ここから実際に私はコンパイルを試みました。

 コマンドプロンプトは、

・Windowsについている「コマンドプロンプト」

・「Visual C++ 2005 Express Edition」をインストールした時に知らないうちに入っていた、「Visual Studio 2005 コマンドプロンプト」

の二つが私のパソコンには入っています。同じものなのかどうかも分からないので、両方起動して両方とも同じなのかどうかも検証しながら進めることにしました。さて、またここでストップです。この真っ黒な画面をどう操作するのかいまいち不安です。Windowsが起動する時に毎回真っ黒な画面に文字だけが表示される瞬間があります。それはおそらく「MS-DOS」というもので、「MS-DOS」と「コマンドプロンプト」は似たものだろうと推測しました。Windowsの「ヘルプとサポート」で「MS-DOS」で検索。「MS-DOS コマンドのヘルプを表示するには」というページから、予想通り、「コマンドプロンプト」と関係があることが分かりました。次に「コマンドプロンプト」で検索してみたら、

コマンド プロンプトを構成する」のページの一番下の関連項目のリンクから、

コマンド ライン リファレンス

というものが出てきました。コマンドライン(Command line)は買ってきたMS-DOSの本に書いてあることと似ています。そこで、本とヘルプの二つを照らし合わせながら二つのコマンドプロンプトを動かしてみました。

part.3へ続く)
2008.04.07 Mon l C TB(0) l top ▲