| レス数が950を超えています。1000を超えると表示できなくなるよ。 |
cygwin使っている人いますか?
[204:>>202 (2001/02/22(木) 07:14)]
path の順番をかえればいいだけです。
[205:名無しさん@お腹いっぱい。 (2001/02/22(木) 13:34)]
非常に為になるスレッドだな。 質問です。
ええと、いくつかのcygwinコンソールモードアプリケーション
の外側にGUIを付けて使いやすくすることを考えています。
GUIで設定とか選んで、それに従ってコマンド引数を設定してやって
execする...ってことになると思います。
普通はきっとTcl/Tkとか使うんでしょうけど、私はそれに関しては
無知度が高いので、普通のWindowsアプリケーションにしよーかなー
と考えています。そちらの方が比較的無知度が低いから。
このとき、やはりこの外側GUIはcygwinでなければならないのでしょうか?
(Mingwは使えるのでしょうか...-mno-cygwinつけてもいいか?)
execするってことはshのお世話になるって事ですよね。というとsh.exe
も当然必要になるのでしょうか?
まだ試しのコードも書いていない状況で質問するのも恐縮ですが、
たまたまいいスレッドがあったので質問してしまいました。
[206:名無しさん@お腹いっぱい。 (2001/02/22(木) 14:03)]
>202
/bin/find でいいだろ。PATHを変えたほうがいいが。
>205
-mno-cygwinは、winネイティブアプリを作るオプション。
ネイティブアプリはcygwinなしで動くし、cygwinからでも動く、
しかし、そのプログラムの扱うファイルパスは、
C:\cygwin\binとかになってしまうので、cygwinからは使いにくい。
そしてこのオプションは、GUIとは無関係。
GUIは、素直にwindows.hをインクルードして、winAPIを呼んで、
winの該当DLLをリンクすればいい。(WinMainも使える)
ただしkernel32.dllは自動的にリンクされるので、指定しない。
なお、簡単なGUIアプリなら-mwindowsオプションで動く。(GDIとかをリンクしてくれる)
gcc -mwindows source1.c source2.c -o guiapp.exe
こんな感じ。
[207:追記 (2001/02/22(木) 14:08)]
上の例は、GUI付きCygwinアプリね。
WinネイティブなGUIアプリなら、
gcc -mno-cygwin -mwindows source1.c source2.c -o guiapp.exe
とか言う感じ
[208:205 (2001/02/22(木) 14:35)]
>>206,207
どうもです。あ、この程度のテストはしたのです。自作のちょこっと
したWindowsコードを、下のようなMakefileでmakeして-mno-cygwinつけたり
取ったりでどちらも動く事は確認してました。
test01.exe: test01.c test01.res
gcc -o $@ test01.c test01.res -mwindows
test01.res: test01.rc test01.h
windres $< -O coef $@
# -mno-cygwin付けない場合、
#WinMainCRTStartup(){ mainCRTStartup();}
#が必要。一般的には、これを#ifdef __CYGWIN__ #endifで挟む
で、フリーでWindowsアプリ作れるのでうれしいなーと思って、じゃあ
205で書いたようなアプリ作れるかな、と思って質問に至ったのです。
205の質問の肝は、このGUIプログラムでexecしようとしているのは
cygwin1.dllが必要であるconsoleアプリなわけですが、この時
どーすんのかいな、という事だったんです。
お答えとしては、「-mno-cygwinつけてもつけなくても、
できたGUI.exeからcygwin1.dll が必要なプログラムでもなんでも
execできる」ということでよろしいでしょうか?
#すばやいレスありがとうございました。
[209:つう (2001/02/22(木) 15:44)]
>>206
つうか、/bin/find が存在していないみたい・・
パッケージどれにはいってるんだっけ?
[210:名無しさん@お腹いっぱい。 (2001/02/22(木) 16:05)]
findutils ぢゃねーの?
[211:名無しさん@お腹いっぱい。 (2001/02/22(木) 16:58)]
shのexecは、UNIXのexecシステムコールを呼んでいるだけ、
自分でやりたければ、execlv()とか(だっけ?忘れた)をCから呼ぶ。
sh.exeはいらないけど、cygwin1.dllは要る(と思う)。
従って、-mno-cygwinはだめ。
ということでいいかな?
でも、
system("start c:\\cygwin\\sh.exe -c /local/bin/hoge.exe");
exit(0);
とかやれば、ネイティブアプリからcygwinアプリを起動することはできるはず。
[212:名無しさん@お腹いっぱい。 (2001/02/22(木) 17:01)]
system("start c:\\cygwin\\bin\\sh.exe -c /usr/local/bin/hoge.exe");
の間違いです。すまそ。
[213:名無しさん@お腹いっぱい。 (2001/02/22(木) 17:17)]
試したけど、うまくいかなかった。すまそ。
system("start c:\\cygwin\\bin\\bash --login -c /usr/local/bin/hoge.exe");
ならうまくいくと思う。多分。
read.cgi ver5.26+ (01/10/21-)