C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: Cygwinを使用して、gccを使ったコンパイルを行いたい


(過去ログ 83 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■48991 / inTopicNo.1)  Cygwinを使用して、gccを使ったコンパイルを行いたい
  
□投稿者/ うず (1回)-(2010/04/20(Tue) 09:17:23)

分類:[.NET 全般] 

2010/04/20(Tue) 09:18:49 編集(投稿者)

Cygwinを使用して、gccを使ったコンパイルを行いたいです。
CygwinをインストールしたOSはWindows XP(SP2)です。

下記サイトの情報を参考にして、test.cを作成→コンパイルしました。
http://programnet.hp.infoseek.co.jp/coloum/cygwin3.html

コンパイルしたことでtest.exeが生成されていることは確認できました。
問題は、Cygwin上でプログラムを実行するときです。

ソースコードには、
printf("Hello World\n");
という命令を記述したのに、プログラムを実行しても表示されないのです。
プログラムが実行していないのか、単に文字列が表示されないのかわかりません。

[現象]
1. Cygwinを使用
testディレクトリ上で「test」コマンドを入力しても
"Hello World"の文字列が表示されない

2. コマンドプロンプトを使用
testディレクトリ上で「test」コマンドを入力すると
"Hello World"の文字列は表示される

cygwinを使用したとき、
gccでコンパイルしたプログラムが動作しない
(もしくは、文字列が表示されない)のは
どのような原因が考えられますか?
また、どのような点を確認したらよいか、対処法を教えてください。
よろしくお願いします。

引用返信 編集キー/
■48992 / inTopicNo.2)  Re[1]: Cygwinを使用して、gccを使ったコンパイルを行いたい
□投稿者/ επιστημη (2483回)-(2010/04/20(Tue) 09:44:15)
επιστημη さんの Web サイト
> cygwinを使用したとき、
> gccでコンパイルしたプログラムが動作しない
> (もしくは、文字列が表示されない)のは
> どのような原因が考えられますか?

./test

って叩いてみ。
# cygwinのシェルはカレントdirを実行pathの候補としないんでないかな?

引用返信 編集キー/
■48994 / inTopicNo.3)  Re[1]: Cygwinを使用して、gccを使ったコンパイルを行いたい
□投稿者/ よねKEN (478回)-(2010/04/20(Tue) 09:54:03)
2010/04/20(Tue) 09:56:20 編集(投稿者)

よく"はまる"ところですね。
私も昔、UNIXではじめてCプログラムを作成したときに、
同じ罠にはまったことがあります(^^;

No48991 (うず さん) に返信
> cygwinを使用したとき、
> gccでコンパイルしたプログラムが動作しない
> (もしくは、文字列が表示されない)のは
> どのような原因が考えられますか?

実験的なプログラムの意味で、test.cというファイル名にしてしまいがちですが、
この時点で落とし穴に片足を突っ込んでしまっています。

UNIX系の環境にはtestコマンドというものがあります。これと名前がかぶっています。
環境変数のPATH設定にカレントディレクトリは入っていないのが一般的なので、
単にtestと打ち込んだ場合、こちらのコマンドが実行されます。

自分の作ったtestプログラムを実行したい場合は、επιστημη さんのコメントの通り、
カレントディレクトリのtestだよ、と命令して挙げればOKです。

引用返信 編集キー/
■48997 / inTopicNo.4)  Re[2]: Cygwinを使用して、gccを使ったコンパイルを行いたい
□投稿者/ うず (2回)-(2010/04/20(Tue) 10:12:25)
回等ありがとうございました。
カレントディレクトリが原因なんですね。
Windowsの環境設定で、PATHの部分にカレントディレクトリ(C:\cygwin\home\(ユーザ名))を指定すれば

>testコマンド
test.cをコピーしてtest2.cという名前にし、test2.exeを生成しました。
test2と打ち込んでも「bash: test2: command not found」と出力されました。
testのときは何も表示されなかったので、何かが違うと思っていましたが
testコマンドと混同していたためだったのですね。覚えておきます。

引用返信 編集キー/
■48998 / inTopicNo.5)  Re[3]: Cygwinを使用して、gccを使ったコンパイルを行いたい
□投稿者/ うず (3回)-(2010/04/20(Tue) 10:12:52)
解決済み忘れていました。
解決済み
引用返信 編集キー/
■49000 / inTopicNo.6)  Re[3]: Cygwinを使用して、gccを使ったコンパイルを行いたい
□投稿者/ 渋木宏明(ひどり) (1307回)-(2010/04/20(Tue) 11:08:27)
渋木宏明(ひどり) さんの Web サイト
> カレントディレクトリが原因なんですね。

No.

>UNIX系の環境にはtestコマンドというものがあります。これと名前がかぶっています。

が、直接の原因。

> Windowsの環境設定で、PATHの部分にカレントディレクトリ(C:\cygwin\home\(ユーザ名))を指定すれば

て対処だと、test.exe が C:\cygwin\home\(ユーザ名) にある時「だけ」にしか期待通りの結果が得られないんじゃないかと。

> test2と打ち込んでも「bash: test2: command not found」と出力されました。
> testのときは何も表示されなかったので、何かが違うと思っていましたが
> testコマンドと混同していたためだったのですね。覚えておきます。



./test2.exe

とするのが、正しい対応のように思います。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -