1 名前:デフォルトの名無しさん [2008/09/13(土) 00:38:02 ] Windows上で動作するフリーの開発環境 CygwinとMinGWに関する相談スレッドです。 過去スレ: cygwin + mingwn + gcc 相談室 Part3 pc11.2ch.net/test/read.cgi/tech/1177944767/ 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について part8 pc11.2ch.net/test/read.cgi/tech/1192201659/ 【激遅】AppleGCC【絶望】 pc11.2ch.net/test/read.cgi/tech/1173267844/
507 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 23:22:11 ] >>505 あなたにメモリ管理についての知識が無いだけ。 例えばmallocの実装がどうなっているか、一度調べてみると良い。 >>504 実装にバグが無ければ メモリが足りない時は、mallocはNULLを返す。 malloc呼び出しの内部で落ちるのは、 アプリケーションがmallocの管理領域を壊している可能性が極めて高い。 例えば、1byteはみだして書き込んでいる場合、 64bitだとアラインメントの都合ではみだしていることが表面化しない場合がある。
508 名前:デフォルトの名無しさん mailto:sage [2009/08/29(土) 23:33:39 ] >>505 単純にそれだけするテストをやってみたってこと? 一般に new (malloc) で確保したメモリを delete (free) した場合、 それらの領域は次に new したときに再利用される。 一旦確保したメモリはアプリケーション側で掴んでいるので、 そのアプリケーションが終了するまでは OS 側にしてみれば使用中に視える。 BSD 系のどれだったかでは一旦 OS に返すような実装のもあったような気がする。
509 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 01:05:22 ] >>505 大きなメモリブロックはOSから直接もらってOSへ直接返し、 小さなメモリブロックは独自に管理するのでOSへ返さず掴んだまま、 という実装は十分ありうるので、一応説明は付く
510 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 01:27:39 ] Cygwinって一応内部ではWin32呼んでるんだよね こういうの組んでみたけど結構こまめにOSに返してるよ #include <iostream> #include <windows.h> const int l = 10000000; int main() { double** a; MEMORYSTATUS ms; a = new double*[l]; for (int i = 0 ; i < l; i++) a[i] = new double; GlobalMemoryStatus(&ms); std::cout << ms.dwAvailPhys << std::endl; for (int i = 0 ; i < l; i++) delete a[i]; GlobalMemoryStatus(&ms); std::cout << ms.dwAvailPhys << std::endl; delete[] a; GlobalMemoryStatus(&ms); std::cout << ms.dwAvailPhys << std::endl; }
511 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 01:59:50 ] 「OSからの取得」をどうやっているのか、にも依存するよ。 例えばHeapAllocで獲得しているのだとしたら、 それは事実上mallocの実装そのものだから その内部で(システムコールを呼んで)カーネルに返しているかどうかは HeapAllocの実装次第。 >>506 の通りにsbrk()経由とするなら、その中で何が呼ばれてるかだね。
512 名前:名無しさん@そうだ選挙に行こう mailto:sage [2009/08/30(日) 11:45:11 ] OS によってメモリ管理に関する方針はかなり違うけど、 Linux の場合は「なるべくめいっぱい活用する」方針だったと思う。 普通に使ってたら空いてるメモリはほとんどなくなるはず。
513 名前:自己レス [2009/08/30(日) 21:40:30 ] >>501-503 ありがとう どうやってもldが「undefined reference to ○○」言ってくるんですよ >>500 こうなったらもうインポートライブラリに頼らないで直接呼んじゃる!!! という方針で書いてみた(といってもほとんどwww.atmark.gr.jp/~s2000/r/rtl/shlwapi.html )のが↓
514 名前:デフォルトの名無しさん [2009/08/30(日) 21:41:37 ] #include <windows.h> #include <stdio.h> typedef int (*TFUNC)(LPCTSTR,LPTSTR,UINT); int main(int argc, char *argv[]) { char str[100]; int ret; HINSTANCE hInstDLL; TFUNC DllFunction;
515 名前:デフォルトの名無しさん [2009/08/30(日) 21:42:37 ] hInstDLL = LoadLibrary( "SHLWAPI.DLL" ); if( hInstDLL == NULL ){ printf( "hInstDLL == NULL" ); return -1; }else{} DllFunction = (TFUNC)GetProcAddress( hInstDLL,"PathSearchAndQualifyA" ); printf( "DllFunction : %d\n", (int)DllFunction ); ret = DllFunction(".",str,100); printf( "ret=%d,str=%s\n", ret , str); if(!FreeLibrary(hInstDLL)){ abort(); }else{} return 0; }
516 名前:デフォルトの名無しさん [2009/08/30(日) 21:54:41 ] 主な参考こっちだった(そこも参考にしたんだけど) www.pushaa.jp/%7Ehizuki/soft/wiki.cgi?cygwin%A4%C7Windows%A5%A2%A5%D7%A5%EA%A4%F2%BA%EE%A4%EB%A4%BF%A4%E1%A4%CE%A5%E1%A5%E2
517 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 22:25:58 ] >>513 gcc は実はインポートライブラリ無しでも dll とリンクできる。 -lshlwapi の変わりに /cygdrive/c/WINDOWS/system32/shlwapi.dll としてみれ。
518 名前:デフォルトの名無しさん mailto:sage [2009/08/30(日) 22:27:10 ] gcc version 3.4.5 (mingw-vista special r3) だと>>500 の方法で何の問題もないね。
519 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 16:29:51 ] >>378 , 379 TDM版MinGW使ってみた。なかなか良くてCode::Blocksとの相性もバッチリなんだが, STLがやたら遅い(gccの問題だと思う)ので,STLPort5.2.1をビルドしようとしたら, うまく行かない。 一応ドキュメントも読んだんだが,MSYS上からmake gcc.makってやっても「何もすることが ない」って言われてビルドできない。 TDM版MinGWにはmake.exeはなくてmingw32-make.exeしかないけど,これは使っちゃいけないと 書いてあるので,MSYSにあるmake.exeでやってみたんだが... やり方教えてもらえると嬉しい。
520 名前:デフォルトの名無しさん mailto:sage [2009/09/01(火) 19:21:10 ] >>519 make -f gcc.mak じゃね?
521 名前:519 mailto:sage [2009/09/01(火) 20:32:50 ] >>520 > make -f gcc.mak じゃね? そうそう、まずそれだった。普段IDEばかり使ってるんでmakeコマンドの使い方忘れてた。 で、まずは落ち着いてやってみようと思って、MinGWを通常の5.1.4に戻して、 >>331 を参考にSTLport5.1.7をビルドしてみた。 gcc.makというファイルは二箇所にあるけど、\build\libの下のヤツを使って、 make -f gcc.mak depend make -f gcc.mak install でビルド成功。ちなみに>>331 の、 > # if (__W32API_MAJOR_VERSION > 3) || ((__W32API_MAJOR_VERSION = 3) && (__W32API_MINOR_VERSION >= 12)) の = 3 のところは、== 3 が正解。で、ビルドは出来たんだけど、C++版Hello World!プログラム(iostream使うやつ) で試してみたら、コンパイル時に「#includeのネストが深すぎる」ってエラーがでた。 今仕事場にいないので詳細はわからない。続きはまたあしたかな...
522 名前:519 mailto:sage [2009/09/02(水) 18:28:05 ] MinGW5.1.4+STLPort5.1.7でテストをしてて,STLPortのビルドは出来たけど(Thanks to >>331 ), 使うとうまく行かない。 以下のHello world!! C++版をコンパイルしてみた。 #include <iostream> using namespace std; int main() { cout << "Hello world!" << endl; return 0; } 環境変数は入念にチェックして,MinGW標準のC++用ヘッダがインクルードされずに,stlportのヘッダが 読み込まれるようにしたんだが,コンパイルすると_cstddef.hの28行目の # include _STLP_NATIVE_CPP_C_HEADER(cstddef) のところで, C:\MinGW\include\stlport\stl\_cstddef.h|28|../3.4.5/cstddef: No such file or directory と言うエラーが出て,後はエラーの嵐。grepでいろいろ調べた結果,MinGWの場合 _STLP_NATIVE_CPP_C_HEADERの定義がうまく出来てないらしいことまではわかったんだが, どうすればいいんだろ。教えてエライ人。
523 名前:519 mailto:sage [2009/09/03(木) 18:00:08 ] 何とか自己解決。 ■ビルドはMSYS付属のmakeじゃなくて,WindowsのコマンドプロンプトからMinGWの mingw32-makeでやる(ドキュメントをよく読んでたら書いてあった)。但し,MSYS使わ ない場合はconfigure.bat -c gcc しろって書いてあるけど,これはウソ。 configureしてからメイクすると速攻エラーが出る。 mingw32-make -f gcc.mak depend mingw32-make -f gcc.mak install だけでOK。 ■unitテストはロケール関係で少しエラーが出た。ehテストはso_stlgだけ, EH TEST FAILURE ! [deque] :testing range insertion at random position (weak) ERROR : 37 outstanding allocations. となったが,so_gとsoはパス。ちなみにこのso_stlg, so_g, soというフォルダに3つ 同名のテストプログラムが出来るけど,違いは何なの?(unitテストsoとso_stlgの 2つのフォルダ内にexeができる)。 ■STLPortのヘッダやライブラリを置いた場所や元のMinGWのフォルダ構成にあわせて, stlport/stl/config/host.h を丁寧に書き換えてやる必要がある。 まぁ,いろんな環境に対応しなければならないので作る側の苦労はこんなもんじゃないと 思うが,ドキュメントはもう少し整備してまとめて欲しいなぁ...
524 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 09:41:40 ] TDM-MinGW4.4.1出てるな
525 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:01:32 ] >>524 ・・・あの、4.4.0がインストールしてある場合、 アップデートするには Create : Create a new TDM/MinGW installation Manage : Manage an existing TDM/MinGW installation Remove : Remove a TDM/MinGW installation のうちどれを選べば最も望ましいでしょうか?
526 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:21:43 ] >>525 知らんけどRemoveしてからインスコすればいいんじゃね?
527 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:23:18 ] >>525 俺はそういうメニューが出るとは知らなかったので プログラムの追加と削除から消してCreateした でもRemoveしてCreateしてもいいかもな
528 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 12:59:56 ] >>524
529 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 13:01:55 ] >>524 これ使うと,サイトの上の方にピンクの囲みで書いてあるとおり,実行のものすごく遅い プログラムが出来上がってしまう。 それでcoreとg++はサイトの下の方にある4.3.3を使ったら解決したよ。
530 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 14:29:16 ] Cygwin1.7でmpich2がmakeできんな。 clockとかシステムコールがないとか・・・ 素直にWIndowsバイナリ入れるかな・・・
531 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 14:57:20 ] WARNING: The 4.4.1-tdm-1 release is known to have a bug which causes drastically increased CPU usage in programs compiled with it. You are urged to use a previous release until this bug is fixed. excite&俺訳↓ 警告: 4.4.1-tdm-1リリースにはそれでコンパイルされたプログラムがCPUパワーをものすごく使うようになってしまうバグがあるのが知られています。このバグが修正されるまであなたが前のリリースを使用することを推奨します。 マジかよ!おじさん、気付かず更新しちまったぜ
532 名前:525 mailto:sage [2009/09/08(火) 15:03:06 ] みなさんありがとうございます。 どうやら CreateとManageの違いは、 Manageの場合はインストール先のパスなどが引き継がれて便利ということ だけっぽいです(完全に私の勘ですが)。 ・・・ですが、インストールしてみたところに>>529 さん、>>531 さんのレスをみて 即刻以前のインストーラを使って元に戻しました。
533 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:08:15 ] >>531 のレスを見て疑問なのですが、 これはgcc4.4.1のバグでしょうか? それとも 4.4.1-tdm-1 release独自のバグなのでしょうか? ご教示いただけませんでしょうか? よろしくお願い申し上げます。
534 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:42:48 ] > gcc4.4.1 Fortran, C, and C++ for Windows www.equation.com/servlet/equation.cmd?call=fortran ↑ こっちのは別に問題なさそうだけど。
535 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 15:44:01 ] >>534 となるとTDMのバグの可能性が高そうですね。 ありがとうございます。
536 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:53:01 ] どうせいずれ直るでしょ 俺は速度はそんなに気にしていない(コンパイルが通って動けばいい)派 なので気にしていない
537 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 21:56:49 ] TDMが止めた方がいいっていってるんだから 俺は止めとこう。 ・・・ってまあホント好き好きにすりゃ良い問題だよな。
538 名前:529 mailto:sage [2009/09/08(火) 22:27:35 ] >>536 > 俺は速度はそんなに気にしていない(コンパイルが通って動けばいい)派 > なので気にしていない それがさぁ、条件によっては実用にならない位遅くなるんだよ。 100行位のUNIDCODEのファイルを読み込ませて処理するソフトでテストしたら(STL使用)、 VC++やBCBでコンパイルしたものは数秒で終わるのに、TDM-MinGW4.4.1だと 10分位かかった。 で、>>529 に書いたように、coreとg++だけ4.3.3をダウンロードして上書き解凍してコンパイルし なおしたら、ちゃんと数秒で終わるようになった。
539 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:35:55 ] >>538 そんなにひどいのか じゃあ4.3.3に戻すか 簡単に戻せるしね SourceForgeからDLできるのであっという間だし
540 名前:デフォルトの名無しさん mailto:sage [2009/09/08(火) 22:53:26 ] mingwはTDMが標準なのかな?
541 名前:532 mailto:sage [2009/09/08(火) 22:56:32 ] >>538 g++ (TDM-1 mingw32) 4.4.0に戻したのですが、 これもバグを抱えていますか? 4.3.3レベルまで戻す必要はありますでしょうか?
542 名前:529 mailto:sage [2009/09/08(火) 23:00:39 ] >>541 ごめん、4.4.0は持ってないし試してないのでわからない。 けど、サイトにそうは書いてないから大丈夫なんじゃないのかな?
543 名前:532 mailto:sage [2009/09/08(火) 23:44:02 ] >>542 ありがとうございます。 過去のサイト(Web魚拓みたいなもの)をあさって見たのですが 4.4.0リリース時点までは戻れなくて。。。
544 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 22:25:47 ] TDMってbashが入ってないけどconfigureはどうればいいの?
545 名前:デフォルトの名無しさん mailto:sage [2009/09/09(水) 23:37:14 ] TDMに限らずMinGWにはbashは入っていない msysを落とせ
546 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 00:30:20 ] >>545 トンクス
547 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 22:45:45 ] いま64bit windows環境がなくて試せてないんだけど、mingw-w64ってどう?
548 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:35:40 ] >>507 メモリ不足でNULLが返るかというと微妙。 mallocは成功して、実際にメモリを使う時(読み書き)すると初めてメモリを割り当てて不足したらそこで止まるようなシステムもある。 Linuxなんかはそう。
549 名前:デフォルトの名無しさん mailto:sage [2009/09/10(木) 23:47:17 ] そんなのあるのか…manpageでバグ扱いされてるな
550 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:52:47 ] >>548 ここはCygwinのスレであって、Linuxのスレではないし 落ちるのがmalloc内部と限定される場合には当てはまらない。 だいたい、「落ちる」と言っても セグフォールトのような症状で落ちるのではなく 「有無を言わさずプロセスがkillされる」だけなのだから。
551 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 00:58:08 ] それも、殺されるのは自プロセスとは限らない、 というより、自分以外である方が普通。
552 名前:デフォルトの名無しさん mailto:sage [2009/09/11(金) 01:35:15 ] 制限なんて作らなかったら良かったのに
553 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 12:24:54 ] Browse TDM's GCC/MinGW32 Builds Files on SourceForge.net ttp://sourceforge.net/projects/tdm-gcc/files/ ここの 1.902.0 tdm-mingw-1.902.0-f1.exe tdm-mingw-1.902.0-f2.exe tdm-mingw-1.902.0-webdl.exe これら3リリースの違いを教えていただけますでしょうか?
554 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:39:34 ] >>553 As a general rule, you should choose the default SJLJ packages, unless you know you need faster exception handling and can guarantee you'll never need to unwind through non-DW2-compiled stack frames (such as a Windows callback). If you chose the DW2 packages, consider removing the "-dw2" suffix from the program names. See README-gcc-tdm.txt, included in the core package, for further notes on this topic. つまりSJLJ(f1)を優先的に使えと Dwarf-2(f2)を使うのは、速い例外処理と、DW2でコンパイルされた のではないスタックフレーム(Windowsのコールバックのような)を解放する 必要が無い事を保証できる もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除する事を 考慮しなさい つまりコールバックを多用してまたより速い例外処理が必要ならf2を、 そうでなければまずf1を選べという事でしょう webdlはオンデマンドインストールで、画面から何をダウンロードして インストールしたりアンインストールするか決めれるというだけのもの でも便利 最終的にはどうすればいいかというと上の注意に従いながらwebdlで インストールすればいいという事になる
555 名前:デフォルトの名無しさん mailto:sage [2009/09/12(土) 15:41:25 ] あ、訳がおかしいな ×もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除する事を考慮しなさい ○もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除するかどうかよく考えなさい
556 名前:デフォルトの名無しさん mailto:sage [2009/09/13(日) 00:16:58 ] ttp://pc12.2ch.net/test/read.cgi/tech/1251773567/ に居た者ですが、TDM-MinGWの問題のため、こちらに参りました。 ttp://codepad.org/zASwhl4f このコード、codepadで実行させると上のリンクのように正常に動作しているようですが、 私の環境g++ (TDM-1 mingw32) 4.4.0ですと 0.1 -9.25596e+061 と表示されてしまいます。 という問題が生じておりまして、 TDM-MinGW4.3.3 -> × TDM-MinGW4.4.0 -> × TDM-MinGW4.4.1 -> ○ ということで、 TDM-MinGW4.4.1で修正されたバグだったようです。 という一応の決着をみました。 しかし本当にバグであったかを確認したく、 皆様、 「Windowsで」 TDM-MinGW4.3.3 , TDM-MinGW4.4.0 , TDM-MinGW4.4.1 を入れている方がいらっしゃいましたら、 宜しければ是非 ttp://codepad.org/zASwhl4f を試して頂けませんでしょうか?
557 名前:554 mailto:sage [2009/09/14(月) 07:03:12 ] >>555 なるほど。 とても良く分かりました。 本当にありがとうございました。
558 名前:553 mailto:sage [2009/09/14(月) 07:03:54 ] >>554-555 すみません間違えました。 私はしがない>>553 でございます。 ありがとうございました。
559 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 11:18:38 ] >>550 mingwでも巨大なメモリをアロケートしたプログラムは途中まで処理が進んだ状態で落ちる(windowsのエラーダイオログが出て)がね。 ぬるぽチェックでは止まらんよ。
560 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 16:04:59 ] じゃあLinuxとは違うじゃねーか。 Linuxは何事も無かったように、どこかの知らないプロセスを落として メモリを確保するんだから。
561 名前:デフォルトの名無しさん mailto:sage [2009/09/14(月) 16:08:28 ] Cygwinの話じゃなくてMingwもかい。 Mingwだったら、HeapAllocをそのまま使えば ちゃんとNULL返してくれるのに。 バカみたい。
562 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:45:37 ] >>559 例えば、↓のようなコードでは全然落ちない(普通にNULLが返る)んだけど 再現するコードを例示してくれ。 まさかとは思うが、newを使っていて bad_allocをcatchしてないから落ちるってオチじゃないよね。
563 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 00:47:20 ] void test(unsigned nmegabytes, std::vector<void *>& saver) { unsigned alloced = 0; printf("[%u]MByte\n", nmegabytes); for (;;) { void *p = malloc(nmegabytes * 1024 * 1024); if (!p) { printf("malloc() returns NULL at allocated %uMB\n", alloced); break; } *(int *)p = 0; // アクセス違反で落ちる? alloced += nmegabytes; saver.push_back(p); } // clear for (std::vector<void *>::iterator it = saver.begin(), end = saver.end(); it != end; ++it) { free(*it); } saver.clear(); } int main() { std::vector<void *> saver; saver.reserve(4 * 1024); test(1, saver); test(50, saver); test(500, saver); }
564 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 01:11:12 ] >>563 C++かとおもいきや、malloc使ってるのかよw えっと、とりあえずそんなに領域確保出来たっけ。 ってことで、 if (!p) { printf("malloc() returns NULL at allocated %uMB\n", alloced); break; } を if (!p) { printf("malloc() returns NULL at allocated %uMB\n", alloced); perror("error"); exit(EXIT_FAILURE); break; } と書き換えてみれば、何が原因で落ちたかわかるよ。 あと、pが確保出来てないのに、そこでbreak;しちゃうと、そりゃその後でアクセス違反で落ちるよw
565 名前:デフォルトの名無しさん [2009/09/15(火) 01:14:22 ] だから「落ちねー」ってのタコ。 「ちゃんとNULL返してる」っての。
566 名前:デフォルトの名無しさん [2009/09/15(火) 01:15:22 ] さっさと「落ちるコード」出せやボケ
567 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 01:17:51 ] >>565-566 同意だがそんなにカリカリすんなよ(´・ω・`)
568 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 01:17:57 ] ごめん流れ読んでなくて、単なる質問だと思ったw
569 名前:デフォルトの名無しさん mailto:sage [2009/09/15(火) 20:48:34 ] ふつうにOllyDbgあたりのデバッガアタッチして追ったらダメなの?
570 名前:デフォルトの名無しさん mailto:sage [2009/09/23(水) 22:49:36 ] ttp://www.tdragon.net/recentgcc/ WARNING: The 4.4.1-tdm-1 release is known to have a bug which causes drastically increased CPU usage in programs compiled with it. You are urged to use a previous release until this bug is fixed. これが修正されるのはいつですか?
571 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 07:14:29 ] >>570 知らねえ 嫌ならTDMじゃないMinGWを苦労して入れてそっち使ってろよ
572 名前:デフォルトの名無しさん mailto:sage [2009/09/24(木) 11:37:37 ] >>571 それもめんどくさい まあ問題が出るようだったら古い版のTDM使うことにするけど。
573 名前:デフォルトの名無しさん [2009/09/26(土) 11:23:46 ] 64bit のmingw入れて、32bit用のアプリを 生成するにはどうすれば良いの?
574 名前:デフォルトの名無しさん mailto:sage [2009/09/26(土) 11:46:53 ] -m32?
575 名前:デフォルトの名無しさん [2009/09/26(土) 20:46:01 ] だな
576 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 13:01:44 ] MinGW と Msys を去年の10月ごろ入れて gcc のバージョンが gcc version 3.4.5 (mingw-vista special r3) なんですが netdb.h sys/socket.h netinet/in.h がインクルードできません 最新版にすればインクルード出来るでしょうか? Cygwin にしないとダメなんでしょうか?
577 名前:576 mailto:sage [2009/10/02(金) 14:51:31 ] 何か3.4.5 だとSJISもうまくコンパイルできないようなんですが 3.4.2とかを入れないといけないのでしょうか?
578 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 15:06:46 ] >>577 当然、-finput-charset=cp932とかやってるんだろうね。
579 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 15:14:14 ] >>578 やっていません。 3.4.5 でも そのオプションをつければいけるのでしょうか? 今やっているのは取りあえず通らない文字を削っているのです 取りあえず、SJIS はいいとして、インクルードファイルは、3.4.2 とかにしないといけないのでしょうか?
580 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 15:21:26 ] 全部試してみればいいじゃないか 無料なんだから、めんどくさがってないで自分で解決してみろ
581 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 15:35:55 ] >>576 MinGWならwindows APIのソケットを使って下さい。
582 名前:デフォルトの名無しさん mailto:sage [2009/10/02(金) 17:37:59 ] 4.3.2 にして、色々試していたらコンパイルもリンクも出来ました 皆さん、どうもありがとうございました。
583 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 20:25:46 ] MSYSにVIMインストールするにはどうしたらいいんですか?
584 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 20:36:11 ] 手順 1. vim をインストールする
585 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 20:40:14 ] >>583 vimのソースをダウンロードして解答したら中に 「INSTALL」か「README」っていうファイルがあるはずだからそれを読んでください。 大概、.configure; make; make install とかすることになりそうだけど。
586 名前:583 mailto:sage [2009/10/04(日) 21:20:04 ] MinGW+MSYS環境なのですが,yumみたいなのはついていないのでしょうか?
587 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 21:27:13 ] よくよく確認してみると、vimってMSYSにデフォルトで入ってるみたいなんだが。
588 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 21:31:53 ] そういう何もかも込み込みの環境を提供しようとするものではない。 基本的には configure と make が動くところまでって感じ。
589 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 21:33:46 ] そうなんですね. じゃあソースおとしてコンパイルしてみます. 最新版のMSYSにはVIMがはいっていないみたいなんですよね
590 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 21:39:51 ] msysDTK の方に入ってるかも?
591 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 21:40:34 ] >>589 一応公式サイトにMSYS用のvimのバイナリっぽいものがあるけど、試しては無い。
592 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 21:43:29 ] >>590 いや、DTKにはエディタ系は入ってないっぽい。 sourceforge.net/project/shownotes.php?release_id=131044
593 名前:590 mailto:sage [2009/10/04(日) 22:55:06 ] あれ? わざわざ入れたことは無い (だって Emacs 派だから!) はずなんだけど俺の環境には vim は入ってるなぁ。 何かと一緒に入ったんだと思うんだけど、 DTK じゃなかったか。
594 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 22:42:17 ] TDMいつになったら直るんだ。 次のg++のバージョンまで直す気がないとか? と思ったら似たようなレスが >>570 でも出ていたか。
595 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 23:40:31 ] 早くバグ直せゴルァ!メールでも送るとか
596 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 01:13:33 ] sourceforge.net/projects/mingw/files/ MSYS vimに分離されたようだね ところで.tar.lzmaファイルってWindowsでは対応ソフト少ないような気がするんだ・・・ お前さんがたはtar使ってるの?
597 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 01:23:44 ] 俺のtarはv1.13だからlzmaは対応してません。(キリッ)
598 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 01:53:27 ] 俺んとこのtarも1.13だ mingw32-gcc-4.4.0が出たときは結局Linuxで展開してからWindowsに持ってきたよ ちょっと解せないものを感じた
599 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 02:07:22 ] windowsじゃないOSでクロスビルドした方が効率いいからね
600 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 02:54:40 ] tdmのソースの中のehstatic.patchにこんなことやってるところがあるんだけど + HANDLE hmutex = CreateMutexA(0, FALSE, name); + if (WaitForSingleObject(hmutex, INFINITE) != WAIT_OBJECT_0) + __w32sp_trap();
601 名前:デフォルトの名無しさん [2009/10/06(火) 11:37:29 ] crt2.oのソースはどこにあるんだ?
602 名前:デフォルトの名無しさん [2009/10/06(火) 11:52:37 ] crt0.oのソースはどこだ?
603 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 11:58:40 ] cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/crt0.c?rev=1.4&cvsroot=src
604 名前:デフォルトの名無しさん [2009/10/06(火) 13:41:24 ] >>603 ありがとう。 これで-municodeが使えるようになるといいが。 www1.axfc.net/uploader/Sc/so/42950.zip
605 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 20:42:21 ] >>596 俺は7-Zipが.tar.xzに対応するのを待っている。
606 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 11:25:40 ] >>593 vimは一個前のMSYSの本体に入ってたが最新版で別パッケージに分離された.
607 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 10:36:21 ] 2009-10-08 TDM-2 fixing the bug that caused a major slowdown in nearly any non-trivial program.