UNIX上でのC言語PGコンパイル

何度かちょっとやっては挫折してしまったC言語の勉強を
またはじめた。

普段使用しているPCのWindows7上でコンパイルして実行しているのだが、
もしUNIX上で実行する場合はどうするのかと思い試してみたので
大した内容ではないが備忘録としてメモを残す。

試すのはさくらのレンタルサーバー、OSはUNIX(FreeBSD)だ。

 

まずテスト用に「こんにちは」と表示するだけのソースを用意する。

 

ちなみにWin上のコンパイラはBorland C++ Compilerを仕様している。

上記ソースをsample.cとして保存をして
私の場合はC直下にstudyフォルダを作成したので
そのstudyフォルダの中にsample.cを配置。
で下記のコマンドを実行。

 

するとstudyフォルダ内にsample.exeが生成されるので
そのsample.exeを実行すれば「こんにちは」と表示がされる。

 

まず試しにこのsample.exeをサーバーに転送して
teratermで叩いてみたが全然だめ。

調べてみるとそもそもexeというのは
Windows上で実行できるPGが収められたファイルとの事で
UNIX上で実行するものではないようだ。

と言う訳で、UNIX上でコンパイルをするべく
前述のsample.cのソースファイルをサーバーに転送した。

UNIX上ではgccというコンパイラが使えるみたいなので
そのgccコマンドでsample.cをコンパイルする。

 

するとa.outという実行ファイルが生成される。

そのa.outを実行するには./をつけて./a.outとするみたいだ。

 

それを実行すると見事に文字化けした。

teraterm画面(Shift_JIS)

 

sample.cの文字コードがShift_JISだったのでUTF-8に変更をして
再度サーバーへ転送した。

もう1回コンパイルしてからa.outを実行すると
問題なく「こんにちは」と表示ができた。

teraterm画面(UTF-8)

 

UNIX上でのC言語プログラム実行について一応できたので
これでよしとしてWin上でのお勉強に戻る事にする。

ちなみにgccのコンパイラはWindows上でも使えるみたいなので
試してコンパイルしてみるとa.exeというファイルが生成された。

Borlandとgccではエラーや警告の返し方に違いがあるものの
コンパイラは動けばとりあえず何でも良いんだなあと感じた。

 

今回は三日坊主にならないように
C言語の基礎ぐらいは身につけたいと思う。