1 名前:デフォルトの名無しさん [2007/04/30(月) 23:52:47 ] Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。 過去スレ: cygwin + mingwn + gcc 相談室 Part2 pc11.2ch.net/test/read.cgi/tech/1126103347/ cygwin + mingwn + gcc 相談室 pc8.2ch.net/test/read.cgi/tech/1058134693/ 関連サイト: Cygwin www.cygwin.com/ MinGW www.mingw.org/ 関連スレッド: GCCについて part7 pc11.2ch.net/test/read.cgi/tech/1145357824/ 【激遅】AppleGCC【絶望】 pc11.2ch.net/test/read.cgi/tech/1173267844/
411 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:11:52 ] 探したら pc11.2ch.net/test/read.cgi/tech/1148393695/ にいた… >>409 基本的に広い範囲で移植性を確保しようと思ったら大変なのはどのツール使っても同じなの はその通りなんだけど、どの程度の移植性が欲しいのかってところかな? autotools使うなら本でも読んでじっくり取り組んでくれ。 - www.amazon.co.jp/Autoconf-Automake-Libtool-Gary-Vaughan/dp/4274064115/ あまり出来のいい本でもないけど…
412 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 09:30:35 ] >>411 基本的には Windows(cygwin), Linux, FreeBSD, Mac あたりで使えれば嬉しいのですが。 あまりマイナーな環境に対応するのは大変ですしね。 いい環境が見つかるまでは、マニュアルと本でがんばりたいと思います。
413 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 10:20:29 ] WXCXXFLAGS="`wx-config --cppflags`" ・・・ではないのかな 試してないけど 俺なら AC_PATH_PROG で wx-config あるかチェックするかな
414 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 15:12:07 ] >>413 ありがとうございます。ただ、それでもダメでした。 (>>409 のWXCXXFLAGSはWXCPPFLAGSの間違いでした。すみません) Makefile.inを見ると変数自体はちゃんと出力されているのですが その中身がどうも空のようです。 Makefile.amではどちらか分からないので 一応@WXCPPFLAGS@と$(WXCPPFLAGS)の両方の形式で出力させています。
415 名前:414 mailto:sage [2008/01/02(水) 16:27:37 ] テストプログラムを作成しました。 原因の分かる方いましたら、是非教えてください。 www.uploda.org/uporg1184897.tar.html
416 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 17:00:06 ] >>415 configure.ac の中身 WXCPPFLAGS=`wx-config --cppflags` - 変数と'='の間にスペースは入れない - 展開はバッククォート 普段UNIXライクOS使ってないならアレだがシェルスクリプトの基本を勉強する必要があるかも
417 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 17:02:34 ] >>415 そうそう Makefile.am の方は @WXCPPFLAGS@ でよくて $(WXCPPFLAGS) はいらない
418 名前:デフォルトの名無しさん mailto:sage [2008/01/02(水) 22:37:44 ] >>416-417 できました! やっとコンパイルに取りかかれそうです。 ありがとうございました。
419 名前:デフォルトの名無しさん [2008/01/04(金) 07:52:12 ] >>418 Net BeansIDE V6 R3を実装し、C/C++コンポーネントのアドイン指定をし、 Cygwin言語処系gmake,g++,gcc等をインストールし、 Net BeansIDEを起動 することにより、自動でビルド環境が出来るじゃん。 まあ、autoconf automake の勉強するつもりならこんなやり方は為にならんが。 まあ、学生さんだったら時間あって勉強がてらハンドでやるのも良いんだろうけどw よく考えたら、正月だったのか。じゃあ時間作れそうだな。
420 名前:419 [2008/01/04(金) 07:58:25 ] こっちの方が正確だったな ja.netbeans.org/ Net BeansIDE V6 R3→表記ミス 組込系なら制約が有るかもしれんな。 ま、その辺り臨機応変にな。 人間がやるより早いぞ。
421 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 09:54:43 ] >>419 本人はVC使ってて他の環境(LinuxやFreeBSD)で容易にコンパイルできるように autotoolize してるって書いてあるだろ… そこで Cygwin + NetBeans 勧めても…
422 名前:デフォルトの名無しさん [2008/01/04(金) 21:04:54 ] >>421 奨めないとPGままだろ? ソフトウェア開発技術者とPGは違うぞ。 コンポーネントプログラミングの妙技も味わって貰わないとなw
423 名前:デフォルトの名無しさん [2008/01/04(金) 21:21:17 ] >>421 autotoolizeって何? スペルミスするくらいならオーソライズって書けよw
424 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 21:25:18 ] >>423 autoconf/automake 使って ./configure && make all && make install って, やればインストール出来るようになってる という意味ではないのか?
425 名前:デフォルトの名無しさん [2008/01/04(金) 21:45:50 ] >>424 個人の造語を空想で断定しては恥かくだろう? 俺はレスの文脈からオーソライズと認識したまで。 何ならそのスペルで英和辞典なりコンピュータ用語事典を 探して見たら良い。 一生掛かっても見っからないことは断言できる。 ま、そんなチンケな話で揉めても仕方ないのでここで ペンを置く。
426 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 22:07:03 ] うるせーよググれカス
427 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 22:08:42 ] >>425 レスの文脈からautotool-izeとしか認識できなかったがな。 オーソライズってのはauthorizeのことか?だとしても意味が通らんな もっと文脈読まないと恥かくぞ?
428 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 22:11:01 ] >>417 その情報は古い。 Makefile.amでは、$(WXCPPFLAGS)と書くのが今風です。 Makefile.inでよきに計らってくれるので。 そうすると、$ make WXCPPFLAGS="-I/anotherdir/include" なんかが使えます。
429 名前:デフォルトの名無しさん [2008/01/04(金) 22:13:26 ] >>427 ふふ、暇なオジンやな? 本件にレスして道ズレにしようちゅう魂胆かなw まあ、おまえが口べただと言うことは良く解った。ググった上でのレスだw>>426
430 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 22:22:17 ] 冬休み学生のへたくそな煽りにわざわざ釣られるなよ…
431 名前:デフォルトの名無しさん mailto:sage [2008/01/04(金) 23:13:08 ] >>423 これほど「プギャー(AAry」を貼りたくなったレスは初めて見た希ガス。
432 名前:デフォルトの名無しさん [2008/01/05(土) 01:06:06 ] 世代間ギャップだろw
433 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 01:14:29 ] >>425 この辺を理解して出直してこい www.catb.org/~esr/jargon/html/construction.html
434 名前:デフォルトの名無しさん [2008/01/05(土) 02:27:02 ] ↑この粘着馬鹿きも
435 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 08:05:03 ] お前も十分粘着だよ。
436 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 10:25:14 ] ageてる人はわかりやすくて良いな
437 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 13:13:44 ] 4+3=7
438 名前:デフォルトの名無しさん [2008/01/05(土) 17:53:22 ] 新年から運営バイト乙 さくらも必要だからな2ちゃんにはw 車 寅二郎
439 名前:デフォルトの名無しさん mailto:sage [2008/01/05(土) 18:17:23 ] To you cotton I dead no death she.
440 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 10:13:59 ] 最近気づいたんだけど、速いCPUでCygwinのgcc使ってコンパイルするより、 遅いCPUでLinuxのgcc使ってコンパイルしたほうが速いのね・・・ 体感的にはCygwin@X2 3800+ < Linux@CelD 2.4GHz, Cygwin@CelD 2.4GHz < Linux@P3 900MHzくらい -pipeつけたらちょっとマシになったけど、それでもやっと同じくらい。 やっぱstat(2)とかが効いてるのかね?
441 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 10:39:27 ] Windowsはプロセスの起動が遅いうえに Cygwinでエミュレートまでしてるからかなり遅くなると思うよ
442 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 11:50:41 ] cygwinと比較してる時点でバイアス満載。
443 名前:デフォルトの名無しさん [2008/01/06(日) 12:14:27 ] MinGW使え
444 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 12:29:43 ] 普通は、fgetc()をループで回してもfgets()やfread()を使っても(I/O速度で制限されるので)大差ない時間で処理できるが、 cygwinに限っては、fgetc()版は遥かに遅くなってしまうからね。
445 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 15:35:36 ] なんで?
446 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:02:26 ] エミュレートしているからでしょ。
447 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 18:26:53 ] それはfgetcが遅くてfreadが遅くない理由にならなくね?
448 名前:デフォルトの名無しさん [2008/01/06(日) 19:02:11 ] >>447 なんでそう思う?
449 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:13:11 ] cygwinはファイルの読み書きは特に重いよね。MinGWにすると凄い速くなる。
450 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 19:35:46 ] >>447 freadも遅いがエミュレート+ループでfgetcが遥かに遅い理由にならなくね?
451 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 20:47:21 ] fread()一回では、エミュレートのオーバーヘッドは1回分であることが期待できる。 多くても、BUFSIZごとに1回だろう。 fgetc()では、毎回の呼び出しごとにオーバーヘッドが発生する懸念がある。 ungetc()のために毎回余計に読み込まなくてはいけないと言う事情がこれに拍車を掛けるだろう。
452 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:18:40 ] そゆのってオーバーヘッドのかからない層で バッファリングすると思うんだけど・・・。
453 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 21:21:49 ] いや、そうじゃないからこそ、cygwinのエミュレーションは問題だといっている。
454 名前:デフォルトの名無しさん mailto:sage [2008/01/06(日) 22:18:45 ] MinGWのgccやg++は、標準ヘッダの検索パスをどこで決めているんでしょ? c:\mingwにインストールしたときはbinのpathを通すだけでコンパイルできたソースが、 j:\!repos\softwares\mingwにインストールしたときはbinのpathを通すだけだと、 no include path in which to search for stdio.hとか言われる。 C_INCLUDE_PATHやCPLUS_INCLUDE_PATHを設定すればいいみたいだけど・・・。
455 名前:デフォルトの名無しさん [2008/01/06(日) 22:19:31 ] >>443 MSYSもいっしょに
456 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 03:31:02 ] >>451 ソースを読んでどこが悪いとか具体的に確信を持って言ってる? なんか勘違いしてる気が…
457 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 05:35:00 ] そのへんを計測してみた人どこかにいないかな
458 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 06:23:28 ] なんかどっかのスレでも書いた気がするけど 俺のVista(HPx64)でMSYSちゃんが上手く動いてくれない
459 名前:デフォルトの名無しさん [2008/01/07(月) 10:14:15 ] XPならHomeでもおk
460 名前:デフォルトの名無しさん mailto:sage [2008/01/07(月) 10:27:17 ] MSYS1.0.10に1.0.11の何か上書きしたらイケましたわ。
461 名前:デフォルトの名無しさん [2008/01/07(月) 13:00:45 ] 使いもしないツールを多く含んだメタボ気味なコンパイラ使うより いいかもね
462 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:20:59 ] 少しスレ違いかもしれませんが質問させてください。 環境は、 MinGW 5.1.3 MSYS 1.0.10 自前のC++ソースをビルドしようとすると、 こんな感じのシンボル未定義のメッセージが並んでリンクエラーになります。 foo.cpp:(.gnu.linkonce.t._ZNK11foo16hogeERKSt6vectorIdSaIdEEj+0x14a) : undefined reference to `_cxa_begin_catch' nmで見るとlibstdc++.aが必要なようですが、-lでばっちり指定しています。 ./libstdc++.a:eh_catch.o:00000000 T ___cxa_begin_catch ./libsupc++.a:eh_catch.o:00000000 T ___cxa_begin_catch 何が原因なんでしょう。。打つ手なしっす。
463 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 00:33:27 ] -lの方が先に指定されていたりはしないよね?
464 名前:462 mailto:sage [2008/01/09(水) 01:08:24 ] >>463 -lstdc++を一番後ろに置いてます。 not foundが出るわけではないのでライブラリは見つけてるはずなのですが、、 コンパイラのインストールからやり直すべきなのでしょうか?
465 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:13:59 ] g++コマンドでリンクすりゃ、libstdc++を明示する必要はないはずだが。(勝手にリンカに適切なオプション渡してくれる)
466 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:31:54 ] >>465 一度g++に切り替えて試したときもlstdc++を付けたままで、まったく同じエラーが出ました。 早速明日外してやってみます。
467 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 01:52:52 ] >>462 アンダースコアの数が違うからリンクできるように見えない。 マップファイルとかアセンブリのソースとか確認しないとわかんないね。
468 名前:デフォルトの名無しさん mailto:sage [2008/01/09(水) 21:12:22 ] バージョンが合ってないとか
469 名前:デフォルトの名無しさん mailto:sage [2008/01/10(木) 22:14:59 ] C/C++の開発環境を整備:MinGWとEclipse CDT builder.japan.zdnet.com/sp/c-programming-language/story/0,3800083430,20364539,00.htm
470 名前:デフォルトの名無しさん [2008/01/13(日) 16:32:21 ] UACが有効なVistaでcygwin使うとき、sudoみたいに管理者権限を動的に(必要なときに)与えるようにしたいんです。 ここで間違えないで欲しいのは、実行したユーザーが属するAdministratorsが保有するACL管理下の権限であって、Administratorの強制執行権限ではありません。 引数をコマンドとして実行するだけのプログラムにマニフェストを組み込んでもcygwinから実行するとNo permissionでキャンセルされます。 runasではadministratorでの実行は可能ですが、条件に合いません。 何かいい方法は無いでしょうか?
471 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 20:36:11 ] VisualStudio, gcc, vim, Cygwinで開発しています。 MinGWというのは使ったことがあるのですが、メリットがよく分かりませんでした。 上記の開発ツールに加えてMinGWも使うとしたときのメリットにどんなものがありますか?
472 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 21:46:31 ] Cygwinというのは苦肉の策であって、 例えばパス名の区切りがスラッシュになるなど、環境との親和性に問題がある。 VisualStudioはアクチがあり、法外に高額で、 かといってラーニングやスタンダードはライセンスにいろんな制約がある。 ただしカネがあるなら最適化他の面で圧倒的に有利だ。 gccってNTリソースパックのgcc? NTのPOSIXサブシステム用はOSの汎用性がない。 MingWは完成度さえ高ければ素晴らしいのだがw ハローワールドで数メガとか恐ろしいことになったりするw
473 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 22:18:13 ] >>471 その列挙の意味がよく分かりませんが、VSとcygwin上のgccとvimを併用してると解釈します。 ja.wikipedia.org/wiki/MinGW#Cygwin.E3.81.A8.E3.81.AE.E6.AF.94.E8.BC.83 ↑cygwinとmingwの比較です。2つは哲学が異なります。 cygwinはmingwに比べwindowsシステムとの互換性が低い(パスとか)のでwindows向けの開発であれば避けた方がいいかもしれません。 しかし、cygwinにmingwが包括されています(詳しい位置づけはよく分かりませんが)。 dllの不要化やWindows APIの利用も可能です。cygwinとmingwを併用する利点はあまり無いと思います。
474 名前:471 mailto:sage [2008/01/13(日) 22:58:52 ] >>472 ありがとうございます。 Win32を使ったアプリを作らないせいか、環境とし親和性はあまり意識いたことないです。 やはり、Win32APIを使うと問題になってきますか。 VS Express 2005のフリー版を使っています。 gccはCygwin上のgccです。 >>473 リンクありがとうございます。 > VSとcygwin上のgccとvimを併用してると解釈します。 そうです。わかりにくくてすみません。 > しかし、cygwinにmingwが包括されています それは初耳です。cygwinを使っていれば、mingwと同じかそれ以上の ことが出来るということですか。 > cygwinはmingwに比べwindowsシステムとの互換性が低い(パスとか)ので > windows向けの開発であれば避けた方がいいかもしれません。 windows向けの開発をする予定があるので、今からVSを使って慣れておこうかと思っている次第です。 windows向けであればcygwinよりmingwがいいんですか。 あるいは、windows向けであればビジネス的にはVSが圧倒的シェアかと思いますが、 個人的使用(趣味のプログラミング)であればVisualStudio2008などは高額で敷居が高いですね。 個人向けであれば、mingwが最適なのかなと思って、最近mingwが気になりだした次第です。
475 名前:デフォルトの名無しさん mailto:sage [2008/01/13(日) 23:20:30 ] 素直にVS使っとけ。どうせ2008も無償版が出るんだから。 POSIXを意識しないならWindows上でまでgcc使う必要はない。
476 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 01:43:18 ] >>472 ハローワールドで数メガとかならねーよw # あ…Javaで書いてgcjでコンパイルとかしたらなるか
477 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 02:33:08 ] デバッグ情報てんこもりとか
478 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 03:08:49 ] [Test.java] public class Test { public static void main(String[] args) { System.out.println("Hello, world."); } } > gcj -O2 --main=Test -o test Test.java > ls -lh test.exe -rwxr-xr-x 1 hoge none 6.1M Jan 14 03:04 test.exe* > strip test.exe > ls -lh test.exe -rwxr-xr-x 1 hoge none 2.1M Jan 14 03:06 test.exe* うはwww
479 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:10:45 ] >>471 VS と MinGW の両方でコンパイルできるコードが割と簡単に書けるところが MinGW のメリット。 MinGW では基本的に Win32 API を使う。 スレッド、WinSock2、DLL のロードなどは Win32 API を利用するので VS 用と MinGW 用のコードの差分は小さくなることが多い。 コンパイラ依存の部分を #ifdef で分ければ大半のコードを共用できる。 Cygwin は使ったこと無いのでパス。
480 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 14:43:38 ] 逆に、cygwinだとWinSockを使わないでソケット周りを書けるのが魅力。 要は、Linuxと同じソースでいける可能性が高い。
481 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:47:17 ] >>474 windows用のソースをwindows用にコンパイルするのがmingw、勿論VSも linux用のソースをwindows用にコンパイルするのがcygwinのgcc cygwinでもwindows用のソースをコンパイルする事はできます、そこで使われているのがmingw このcygwinのmingwが本家と同一なのかどうなのかはよく知りませんが。 gcc --target-help の最初の10行程を見てみてください、参考になるかと思います。
482 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 04:56:41 ] 一部のファイルをインクルードすると failure to convert cp932 to UTF-8 というエラーが発生するんですが これは何が原因なんでしょう? 別のエディタで文字コードをUTF-8にして保存しても直りませんでした
483 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 05:46:45 ] 改行コードかも
484 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 06:25:37 ] >>483 阿呆ですか。 >>482 --input-charsetは?
485 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 07:23:08 ] いやまじであるぜ? 改行コード
486 名前:デフォルトの名無しさん mailto:sage [2008/01/15(火) 14:22:35 ] >>482 「一部のファイル」ってのを明確すると話が早かったりするかも。 boostだったりしない?
487 名前:本田 [2008/01/17(木) 17:40:38 ] >COMプログラマの解説書 >Crispin Goswell >Microsoft Office Product Unit >1995年 春 >1995年9月13日改訂 msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpdncomp/htm/com_co.asp >抄録 >この解説書は、 >Microsoft(r) OLE Component Object Model(COM)オブジェクトを作成し、 >効果的に使用する方法を説明しています。 >例文はほとんどCで書かれていますので、実際に何が行われているかが、大変分かりやすく示されています。 >プログラマの中には、オブジェクトを実行するためにC++を好んで使用する人もいるでしょう。 >C++プログラマの観点からCOMの概念および基本的な使用法を論じているのは >Kraig Brockschmidt著のInside OLE (第2版)(MSDN Library(Books))です。 >COMとは何か、またその設計や哲学の後ろにある動機付けをより理解する事に興味がある読者なら、 >Component Object Model Specification(MSDN Library(Specifications))の最初の2章を読んでください。 >第1章には簡単なイントロダクションを、第2章では徹底的に概要を解説してあります。 >この解説書ではInside OLEとCOM Specificationにある情報を、 >COMオブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。
488 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 18:01:35 ] >>482 input-charset を CP932 として使っていながら、欧州由来のコードで CP932的に不正なものを含むソースをコンパイルしたんだと思う。 ffmpegの何かのヘッダとか。
489 名前:デフォルトの名無しさん [2008/01/20(日) 14:26:15 ] エクスプローラーを使っているときに 今見ているフォルダでCgywin窓を開きたいのですが どうしたらいいですか?
490 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 15:01:59 ] アドレスバーからコピーして、cdすれば?
491 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 15:39:29 ] >>489 cygwin hereでググれ
492 名前:デフォルトの名無しさん mailto:sage [2008/01/20(日) 19:41:55 ] 俺はこうしてる [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\WinHandPrompt] @="Zsh(&C)" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\WinHandPrompt\command] @="cmd.exe /F:on /K \"cd %L&&zsh\""
493 名前:デフォルトの名無しさん mailto:sage [2008/01/21(月) 21:47:51 ] 窓の手の流用か
494 名前:デフォルトの名無しさん mailto:sage [2008/01/22(火) 02:51:02 ] あれ、なんでばれたんだろう? 、と思ったら書いてあったねハッキリと
495 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 01:51:09 ] MSYSからgetchとかkbhitを拾うのはどうしたらいい? コマンドプロンプトではできることが MSYSでは上手くいかないことが意外に多い printfは必ずfflushも書かないと表示されないし・・・(TT
496 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 05:18:27 ] 毎回のようにfflushするくらいならsetvbufに_IOLBFしとけ。 で、getchやkbhitはC/C++にもPOSIXにも準拠していないし、Win32にも無い。 強いて言えば、DOSのデファクトスタンダードだったので残してある、というだけ。 Win32APIを使わないとするなら、 conio.hじゃなくてcursesとかを使うんじゃないの?知らないけど。
497 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 11:11:00 ] >>495 >printfは必ずfflushも書かないと表示されないし・・・(TT リダイレクトする用途を考慮しなくていいなら、printf()ではなくfprintf(stderr, ...)したまえ。
498 名前:デフォルトの名無しさん [2008/01/26(土) 15:58:13 ] いま操作しているPC(ネットワーク上でのコンピュータ名はPC1)のcygwin(以下cygwin1)から sshでほかのPC(ネットワーク上でのコンピュータ名はPC2)のcygwin(以下cygwin2)にログインして \\PC1\Shareにアクセスしようとすると"-bash: cd: \\yy-x60s\Share: Permission denied"と言われてしまいます cygwin2から直接"cd \\\\PC1\\Share"を実行するとこちらは成功します cygwin2で"setfacl -m user:SYSTEM:rwx \\\\PC1\\Share"を実行して 直後に"getfacl \\\\PC1\\Share"を実行すると # file: \\PC1\Share # owner: pc2user # group: なし user::rwx group::r-x other:r-x mask:rwx とでていて設定が反映されてないことが原因なような気がするのですが、どのように設定するばよいか分かりません
499 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 15:58:46 ] そういえばstderrはバッファリングされないからflushする必要もないよね
500 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 16:13:01 ] でなきゃ困るだろ.そもそも >printfは必ずfflushも書かないと表示されないし・・・(TT は,それが当たり前だということを知らずに泣いてるだけの話だろ
501 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 19:20:24 ] >>495-496 MSYS では、ってのは rxvt では、ってことだよね。 pdcurses の getch を使うプログラムを書いて試してみたけど rxvt ではダメっぽい。 LINES value must be >= 2 and <= -4096: got 1 initscr(): LINES=1 COLS=1: too small. とか出てプログラムが異常終了する。 ググってみると lynx や aspell で同じ問題が起こっているみたい。 rxvt では (pd)curses は NG。
502 名前:デフォルトの名無しさん [2008/01/30(水) 21:32:07 ] 質問です。非常に初歩的ですみません。 ジョークコマンド sl を、Cygwin や その他 dll 等に依存しない、exeファイ ル単体で動く形にコンパイルしたいのです。 chaosweb.complex.eng.hokudai.ac.jp/~hagi/contents/memo-cygwin.html#sl freethink.way-nifty.com/action/2006/06/gnuwin32_6362.html これらを参考に、Mingw、GnuWin32 をそれぞれフルインストールしました。 makefile の -lcurses と sl.c の usleep を書き換えました。 また、makefile を CC=c:/mingw/bin/gcc.exe と書き換えました。 そこから先が分かりません。 gnuwin32 のコマンドプロンプトから、makeを実行すると、以下のようなエラー が出ます。 gcc -O -o sl sl.c -lpdcurses -ltermcap sl.c:30:20: curses.h: No such file or directory sl.c: In function `my_mvaddstr': sl.c:42: error: `ERR' undeclared (first use in this function) sl.c:42: error: (Each undeclared identifier is reported only once ...(略) ということで質問です。GnuWin32 の termcap と pdcurses を、MinGW から利 用できるようにするには、どのように何を設定したらいいのでしょうか?
503 名前:デフォルトの名無しさん mailto:sage [2008/01/30(水) 23:04:14 ] >>502 gcc の -I オプションで curses.h があるディレクトリを指定
504 名前:502 mailto:sage [2008/01/30(水) 23:57:09 ] >>503 ありがとうございます。makefileのCFLAGSを以下のように修正したところ、 CFLAGS=-O -I "/Program Files/gnuwin32/include/" 一歩前進し、今度はこんなエラーが出るようになりました。 c:\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lpdcurses collect2: ld returned 1 exit status make: *** [sl] Error 1 今度はどこに何を設定したら良いでしょう?
505 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:01:20 ] 1を聞いて10を知れ、とは言わないがちょっとな・・・
506 名前:502 mailto:sage [2008/01/31(木) 00:46:02 ] ごめんなさい、図々しいお願いですね。 gcc の man を見ているのですが、ライブラリの検索パスを追加するオプショ ンが見つかりません。 また、C:\Program Files\gnuwin32 の下に pdcurses に相当するライブラリが あるのかと思ったのですが、libpdcurses.a というファイルが見つかりません。 行き詰ってしまいました。
507 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 00:49:24 ] -L でしょ?
508 名前:502 mailto:sage [2008/01/31(木) 01:08:26 ] うわあ、これは恥ずかしい。申し訳ありません。 日本語manを"ライブラリ"で検索していたので見つかりませんでした。 c:\program files\gnuwin32\lib に pdcurses がなく、curses があったので、 Makefile を元に戻しました。 --- sl.c ---- /* usleep(20000); */ sleep(1); ここで今、こんなエラーが出ています。 c:\DOCUME~1\ユーザ名\LOCALS~1\Temp/ccGQbaaa.o:sl.c:(.text+0x1a4): undefined reference to `sleep' collect2: ld returned 1 exit status たぶん、正しいヘッダをインクルードすればいいと思うのですが。
509 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 01:48:36 ] >>508 > たぶん、正しいヘッダをインクルードすればいいと思うのですが。 そう思うんだったら、includeディレクトリの中でsleep()の宣言を探す べきでしょ。たぶん無いけど。
510 名前:502 mailto:sage [2008/01/31(木) 02:01:22 ] おっしゃるとおりです。見つかりませんでした。 /MinGw/include には何もなく、 /Program Files/gnuwin32/include には glibc/unistd.h に sleep() がありましたが、includeすると大量のエラー。 winx/timex.h に nanosleep() がありましたが、 undefined reference to `nanosleep' のエラーが出ます。 /cygwin/include でも見つからなかったので、どうも方針がまずいようです。 Cygwin 上だと何もせずにコンパイル、実行できましたので。 今日はいったん中止します。
511 名前:デフォルトの名無しさん mailto:sage [2008/01/31(木) 08:33:38 ] このまま続けると嫌われるよ。 おそらく、初心者板の方が適している質問と思われ。 # -Iや-Lオプションなんて、cc時代から定番のオプションだし。 # CygwinやMinGWの問題か切り分けられて無いし。