何度かちょっとやっては挫折してしまったC言語の勉強を
またはじめた。
普段使用しているPCのWindows7上でコンパイルして実行しているのだが、
もしUNIX上で実行する場合はどうするのかと思い試してみたので
大した内容ではないが備忘録としてメモを残す。
試すのはさくらのレンタルサーバー、OSはUNIX(FreeBSD)だ。
まずテスト用に「こんにちは」と表示するだけのソースを用意する。
#includemain(){ printf("こんにちは"); }
ちなみにWin上のコンパイラはBorland C++ Compilerを仕様している。
上記ソースをsample.cとして保存をして
私の場合はC直下にstudyフォルダを作成したので
そのstudyフォルダの中にsample.cを配置。
で下記のコマンドを実行。
cd c:\study bcc32 sample.c
するとstudyフォルダ内にsample.exeが生成されるので
そのsample.exeを実行すれば「こんにちは」と表示がされる。
まず試しにこのsample.exeをサーバーに転送して
teratermで叩いてみたが全然だめ。
調べてみるとそもそもexeというのは
Windows上で実行できるPGが収められたファイルとの事で
UNIX上で実行するものではないようだ。
と言う訳で、UNIX上でコンパイルをするべく
前述のsample.cのソースファイルをサーバーに転送した。
UNIX上ではgccというコンパイラが使えるみたいなので
そのgccコマンドでsample.cをコンパイルする。
gcc sample.c
するとa.outという実行ファイルが生成される。
そのa.outを実行するには./をつけて./a.outとするみたいだ。
それを実行すると見事に文字化けした。
sample.cの文字コードがShift_JISだったのでUTF-8に変更をして
再度サーバーへ転送した。
もう1回コンパイルしてからa.outを実行すると
問題なく「こんにちは」と表示ができた。
UNIX上でのC言語プログラム実行について一応できたので
これでよしとしてWin上でのお勉強に戻る事にする。
ちなみにgccのコンパイラはWindows上でも使えるみたいなので
試してコンパイルしてみるとa.exeというファイルが生成された。
Borlandとgccではエラーや警告の返し方に違いがあるものの
コンパイラは動けばとりあえず何でも良いんだなあと感じた。
今回は三日坊主にならないように
C言語の基礎ぐらいは身につけたいと思う。