先日後輩が作ったプログラムを実行して評価することになった。そのときとある理由でCygwinでコンパイル(exeファイルを作る)して実行したのだがつまづいたところがあったのでその場面のメモ。
Cygwinでデスクトップ上のフォルダに移動できない
先日後輩が作ったプログラムが正常に動くかどうかを評価することになった。環境による結果の違いを考え、eclipse、Visual Studioに加えCygwinの3つで評価することにした。
Cygwinで正常に動くかどうか試そうと下の画像のように評価しようとしたcファイルのある場所に移動しようとした。
cd (実行したいCファイルのあるディレクトリのパス)
このコマンドを実行するとエラーが出て移動に失敗した。よくわからず調べてみたところ、Cygwinを起動したときはデフォルトでCygwinのフォルダ(たいていは/C/cygwin)を指していてかつcdコマンドだけではCygwinのフォルダ内しか移動できないとのこと。
実行したいCファイルのある場所は/C/Users/***/Desktop/testで起動時のディレクトリの場所は/C/cygwinとCygwinのフォルダ内にはないためこのままではコンパイル&実行ができない。
仕方なくCygwinのフォルダ内に評価したいcファイルを無理やり移動して評価したのだが、そんなことをしなくてもちゃんとCygwinのフォルダ外に移動できるコマンドが用意されている。
cygdriveでデスクトップ上に移動する
Cygwinでデスクトップ上のディレクトリに移動する場合はcygdriveというコマンドを使う。
cd /cygdrive/(実行したいCファイルのあるディレクトリのパス)
これでデスクトップ上に移動できる。デスクトップ上のフォルダに移動したい場合はフォルダまで指定して上のコマンドを実行する。
そして以下のコマンドでCファイルをコンパイル(exeファイル)を作る。
gcc (ファイル名).c
Cファイルとかヘッダーファイルとかが複数ある場合は
gcc (ファイル名1).c (ファイル名2).c (ファイル名3).h
と間に半角スペース入れて連続で打てばOK。main関数があるCファイルを最初に指定するのを忘れずに。
Cファイルやヘッダーファイルにエラーがなければ、カレントディレクトリにa.exeファイルができるので以下のコマンドでこのa.exeを実行する。
./a.exe
コマンドライン引数を指定したい場合は
./a.exe (引数)
と後ろに半角スペースを入れて指定する。指定したいコマンドラインが複数ある場合は同様に半角スペースで区切って指定する。実行するとcygwinの画面上に結果が出力される。
ちなみにhogehoge.cの内容はおなじみのHello world!さん。
コメント