プロが教える店舗&オフィスのセキュリティ対策術

cygwinを取り込んで使えるようにしたんですが、コマンドプロンプト上で使えません。
コンパイルが出来ないです。
いちおう環境変数PATHを色々なHPに書いてあるように設定したのですが、gccは内部コマンド外部コマンド操作可能なプログラムパッチまたはバッチファイルとして認識されていませんと出ます。
何がおかしいのかご指摘お願いします。
あと、dirで確認したところコマンドプロンプトの初期がオーナーのドキュメントファイルに設定されているんですが、いちおうこの中にデスクトップがあるんですが、デスクトップ上でC言語プログラムの専用ファイルを作った場合にcdで飛ぶ必要はあるんですか?あるならばコマンドプロンプト上でひらがなを打つ方法を教えてください。
あと、cygwin上でコンパイルするにはどうすればいいんですか?
質問重ね重ねすいませんm(__)m

A 回答 (5件)

> コマンドプロンプト上でcygwinの全ての機能が使えないと


> ありますが、大学の授業ではcmdでgccを使っていたのですが、
> なにかそれは別例ということですか?

「すべての機能が使えない」わけではなく、「すべての機能"は"使えない」です。
使えない機能があるということです。わかりにくい表現をしてしまったようで、申し訳ありません。

explorerでc:\cygwin\binを開くと、たくさんのexeとたくさんのdllとそのほかたくさんのファイルがあります。dllはbashでもcmd.exeでも直接実行できないので、除外します。
このうち、exeでないものはスクリプトです。テキストファイルで開くことができます。
これらのスクリプトは普段あまり使わないものばかりなので、それほど困りません。
exeを見ていくと、サイズが1KBになっているものが結構あります。例えばgunzip.exeやawk.exe、cc.exe、zcat.exeなどがそうです。これらはcmd.exeからは動作しません。とくにawkやgunzipは結構つかう可能性のあるコマンドなので、「なんで動かないんだ」と悩む前にbashを使え、ということになるのです。

> ホームディレクトリは標準ではc:\cygwin\home\(ユーザー名)\、
> とのことですが、そうなっていません。
> ユーザー名@フルコンピュータ名になっています。

bashを起動したら、pwdコマンドを実行してください。
/home/(ユーザー名)
と表示されませんか。
また、そのままbash上からcmd.exeを起動すると
C:\cygwin\home\(ユーザー名)>
という感じのプロンプトになると思います。
もちろん、cmd.exe上でcdコマンドを実行すると
C:\cygwin\home\(ユーザー名)
と表示されると思います。

> >しかし実のところ、(中略)よいでしょう
> この文面ですが、初心者なので理解にいたりませんでした。
> もう少し噛み砕いていただけると幸いです。

まず、ここで使う用語を整理しておきます
・ディレクトリ
explorerでいうところのフォルダをbashで見た場合の名前。/から始まる文字列であらわされます。
・ホームディレクトリ
bashを起動したときに最初に位置するディレクトリのこと。bash上でcdコマンドを引数なしで実行した場合に戻ってくる場所です。cmd.exeでのcdコマンドの機能(現在のフォルダ名を表示する)は、bash上ではpwdコマンドとして別に実装されています。
・フォルダ名
explorerやcmd.exeで見たフォルダ名。通常、ドライブレター(C:やD:など)+"\"で始まる文字列で表されます。
・ホームディレクトリのフォルダ名
bashのホームディレクトリ上でcmdを起動してcdコマンドで表示されるフォルダ名。通常C:\cygwin\home\(ユーザ名)という形になる。

では、実際にショートカットを作る方法です。
デスクトップで右クリック→新規作成→ショートカット
で表示される「ショートカットの作成」ダイアログの項目の場所として、ホームディレクトリのフォルダ名(C:\cygwin\home\(ユーザー名))を入れると、デスクトップにホームディレクトリへのショートカットができます。そのショートカットをダブルクリックで開けば、いつでもbashのホームディレクトリをexplorerで表示できます。これならwindowsでエディットしてbash上でgccを使うのが楽になります。

> cygwinのbash上でtest.cをコンパイルしようとして
> gcc -o test.c test
> を行っても、
> gcc: No such file or directory
> gcc: no input files
> と出ます。何が原因でしょうか…。

gcc -o test test.c
の間違いではありませんか。
あと、test,exeは、/bin/test.exeとして存在しますので、出力ファイル名にtestを使うのはおすすめしません。
gcc -o c_test.exe test.c
などとする方がいいでしょう。
    • good
    • 1
この回答へのお礼

やっとコンパイルが出来ました。いろいろいじっておかしくなっていたので、いったん消去して入れなおし、再度ローカルで確認してダウンロード出来ていないものを入れると上手くいきました。
それに、細かな用語や具体的な各部分のつながりも理解でき大変助かりました。これから少しずつ学習していきたいと思います。
蛇足ですが、dllは除去するとのことですが、削除してもいいということですか?

お礼日時:2005/10/21 18:45

私は日本語を母語として使用していますが、日本語そのものの研究者ではないので、「経験者-自信あり」で。



> 蛇足ですが、dllは除去するとのことですが、削除してもいいということですか?

"除去"ではありません。"除外"すると書きました。

> じょがい【除外】 (名)スル
> ある枠の中に入れないこと。区別してのぞくこと。
> じょきょ【除去】 (名)スル
> とりのぞくこと。
> 三省堂提供「大辞林 第二版」/goo辞書より

ぜんぜん意味が違います。

私はさきの回答で「ここでの説明から除外する=ここでは説明しない」とという意味で書きましたが、わからなかったでしょうか。

わかりにくい表現をしてしまったようで、申し訳ありません。
    • good
    • 0
この回答へのお礼

了解です。蛇足ですいません。

お礼日時:2005/10/22 21:16

> bashというのは一体何なのでしょうか…bashの説明を出来ればお願いいたしますm(__)m



インストールしたときにできるCygwinのアイコンをクリックすれば、bashが起動します。
bashの使い方はGoogleででも検索して調べてください。
    • good
    • 0
この回答へのお礼

bashの意味については分かりました。有難うございます。
使い方に関しては、いきなりだと難しすぎるので少しずつ理解したいと思います。
まずはコンパイルだけ出来ればいいので…。

お礼日時:2005/10/20 20:41

質問が大量にあるようなので、ひとつずつ回答します。



gccがない:

cygwinの標準オプションにはgccは入っていません。
setupを再度起動して、Select Packagesの画面で
Develの左の+ボックスをクリックします。
ボックスが-になって下にDevelの要素が一覧されます。
ここにgccがありますので、Skipとなっているはずなので、ここをクリックして1.95.8-1にします。その状態でダイアログの下にある次へのボタンをクリックするとインストールされます。

コマンドプロンプト上で使えない:

コマンドプロンプトでは、cygwinのすべての機能は使えません。デスクトップにbashのショートカットがあるはずなので、そちらから起動してください。ホームディレクトリは標準では
c:\cygwin\home\(ユーザー名)\
になっているはずです。

コマンドプロンプトの初期ディレクトリがデスクトップではなく、
c:\Document and Settings\(ユーザー名)\
になっている:

それが普通の状態です。デスクトップにしたい場合は、ショートカット上で右クリック(スタートメニュー内でも同じ)して、作業フォルダの欄に
%HOMEDRIVE%%HOMEPATH%\デスクトップ
と記入すると解決するでしょう。
しかし実のところ、bashを使う場合には逆の方が楽で、デスクトップに、c:\cygwin\home\(ユーザー名)へのショートカットを作ったほうが、同様にexplorerでファイル操作ができるのでよいでしょう。ただし、日本語でファイル名をつけないよう気をつけてください…って、ファイル名変更なんかはexplorerでやった方が楽だから大丈夫でしょう。

コマンドプロンプト上で日本語を入力する方方がわからない:

Alt+[半角/全角]でコマンドプロンプトの最下行に「全あ連ローマ(←実際は半角カナ)」などと表示されます。この状態で通常と同様に日本語入力ができます。
ただし、コマンドプロンプトではこれでいいのですが、cygwinのbash上では日本語は入力できません。bashのプロンプトが8bitの入力に対応していないからです。
しかし、ファイル名を日本語でつけない限りbash上で日本語を入力する必要はないでしょう。どうしても日本語を入力する必要がある場合は、bash上からcmd.exe(コマンドプロンプト)を起動しましょう。

cygwin上でgccでコンパイルする方法がわからない:

gcc -o (出力ファイル名) (入力ファイル名)
で最低限のコンパイルができます。
もっと複雑なコンパイルを行う場合は、別途調べてください。gccはcygwinでもLinuxでもBSDでもまったく同じように使えますので、ネット上にも解説はたくさんあります。JMでも日本語訳されたマニュアルページ[参考URLを参照]が公開されています。

これで全部かな?

参考URL:http://www.linux.or.jp/JM/html/GNU_gcc/man1/gcc. …
    • good
    • 0
この回答へのお礼

丁寧に答えていただき有難うございます。
ですが、いくつか分かった反面、分からなかったことも多いので、補足させていただきます。

cygwinをとったときにgccは手動できりかえてkeepにしてあるので大丈夫です。

コマンドプロンプト上でcygwinの全ての機能が使えないとありますが、大学の授業ではcmdでgccを使っていたのですが、なにかそれは別例ということですか?

ホームディレクトリは標準ではc:\cygwin\home\(ユーザー名)\、とのことですが、そうなっていません。
ユーザー名@フルコンピュータ名になっています。

>>しかし実のところ、bashを使う場合には逆の方が楽で、デスクトップに、c:\cygwin\home\(ユーザー名)へのショートカットを作ったほうが、同様にexplorerでファイル操作ができるのでよいでしょう
この文面ですが、初心者なので理解にいたりませんでした。もう少し噛み砕いていただけると幸いです。

コンパイルに関してですが、cygwinのbash上でtest.cをコンパイルしようとしてgcc -o test.c testを行っても、gcc: No such file or directory gcc: no input filesと出ます。何が原因でしょうか…。

その他の点については解決しました。有難うございました。

お礼日時:2005/10/20 20:39

基本的なことですが...



Cygwinはデフォルトではgccはインストールされません。setup.exeを実行する際にgccを選択しなければなりません。

次に、コマンドプロンプト上でとのことですが、Cygwinではコマンドプロンプトではなくbashを使います。コマンドプロンプト上で無理矢理使うこともできますが、あまりメリットはありません。
    • good
    • 0
この回答へのお礼

あ、説明不足ですいませんm(__)m
Cygwinを導入した際にgccは手動で選択したので入っているはずです。
bashというのは一体何なのでしょうか…bashの説明を出来ればお願いいたしますm(__)m

お礼日時:2005/10/20 19:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!