のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,836人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレCygwin + MinGW + GCC 相談室 Part 4

    gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 476 + - cannot + - curses + - pthread + - wcout + - wcwidth + - yum + - リダイレクト + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    551 : デフォルトの名無 - 2009/09/11(金) 00:58:08 (+57,+29,-6)
    それも、殺されるのは自プロセスとは限らない、
    というより、自分以外である方が普通。
    552 : デフォルトの名無 - 2009/09/11(金) 01:35:15 (+57,+29,-2)
    制限なんて作らなかったら良かったのに
    553 : デフォルトの名無 - 2009/09/12(土) 12:24:54 (-1,-30,-106)
    Browse TDM's GCC/MinGW32 Builds Files on SourceForge.net
    http://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 : デフォルトの名無 - 2009/09/12(土) 15:39:34 (+46,-30,+0)
    >>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 : デフォルトの名無 - 2009/09/12(土) 15:41:25 (+31,-29,-30)
    あ、訳がおかしいな

    ×もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除する事を考慮しなさい
    ○もしf2を使うなら、プログラム名から"-dw2"接尾辞を削除するかどうかよく考えなさい
    557 : 554 - 2009/09/14(月) 07:03:12 (+62,+29,-28)
    >>555
    なるほど。
    とても良く分かりました。
    本当にありがとうございました。
    558 : 553 - 2009/09/14(月) 07:03:54 (+61,+29,-1)
    >>554-555
    すみません間違えました。
    私はしがない>>553でございます。
    ありがとうございました。
    559 : デフォルトの名無 - 2009/09/14(月) 11:18:38 (+78,+29,-36)
    >>550
    mingwでも巨大なメモリをアロケートしたプログラムは途中まで処理が進んだ状態で落ちる(windowsのエラーダイオログが出て)がね。
    ぬるぽチェックでは止まらんよ。
    560 : デフォルトの名無 - 2009/09/14(月) 16:04:59 (+57,+29,-24)
    じゃあLinuxとは違うじゃねーか。
    Linuxは何事も無かったように、どこかの知らないプロセスを落として
    メモリを確保するんだから。
    561 : デフォルトの名無 - 2009/09/14(月) 16:08:28 (-3,-29,-19)
    Cygwinの話じゃなくてMingwもかい。

    Mingwだったら、HeapAllocをそのまま使えば
    ちゃんとNULL返してくれるのに。
    バカみたい。
    562 : デフォルトの名無 - 2009/09/15(火) 00:45:37 (+13,-29,-43)
    >>559
    例えば、↓のようなコードでは全然落ちない(普通にNULLが返る)んだけど
    再現するコードを例示してくれ。

    まさかとは思うが、newを使っていて
    bad_allocをcatchしてないから落ちるってオチじゃないよね。
    563 : デフォルトの名無 - 2009/09/15(火) 00:47:20 (+9,-30,-202)
    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 : デフォルトの名無 - 2009/09/15(火) 01:11:12 (+4,-30,-155)
    >>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 (+84,+29,-11)
    だから「落ちねー」ってのタコ。

    「ちゃんとNULL返してる」っての。
    566 : デフォルトの名無 - 2009/09/15(火) 01:15:22 (+52,+29,-7)
    さっさと「落ちるコード」出せやボケ
    567 : デフォルトの名無 - 2009/09/15(火) 01:17:51 (+53,+14,+3)
    >>565-566
    同意だがそんなにカリカリすんなよ(´・ω・`)
    568 : デフォルトの名無 - 2009/09/15(火) 01:17:57 (+57,+29,-16)
    ごめん流れ読んでなくて、単なる質問だと思ったw
    569 : デフォルトの名無 - 2009/09/15(火) 20:48:34 (+13,-14,-20)
    ふつうにOllyDbgあたりのデバッガアタッチして追ったらダメなの?
    570 : デフォルトの名無 - 2009/09/23(水) 22:49:36 (+67,-30,-88)
    http://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 : デフォルトの名無 - 2009/09/24(木) 07:14:29 (+89,+23,-10)
    >>570
    知らねえ
    嫌ならTDMじゃないMinGWを苦労して入れてそっち使ってろよ
    572 : デフォルトの名無 - 2009/09/24(木) 11:37:37 (+69,+29,-19)
    >>571
    それもめんどくさい
    まあ問題が出るようだったら古い版のTDM使うことにするけど。
    573 : デフォルトの名無 - 2009/09/26(土) 11:23:46 (-1,-29,-26)
    64bit のmingw入れて、32bit用のアプリを
    生成するにはどうすれば良いの?
    574 : デフォルトの名無 - 2009/09/26(土) 11:46:53 (-11,-29,-17)
    -m32?
    575 : デフォルトの名無 - 2009/09/26(土) 20:46:01 (+37,+19,-2)
    だな
    576 : デフォルトの名無 - 2009/10/02(金) 13:01:44 (+17,-30,-72)
    MinGW と Msys を去年の10月ごろ入れて
    gcc のバージョンが
    gcc version 3.4.5 (mingw-vista special r3)
    なんですが
    netdb.h sys/socket.h netinet/in.h がインクルードできません
    最新版にすればインクルード出来るでしょうか?
    Cygwin にしないとダメなんでしょうか?
    577 : 576 - 2009/10/02(金) 14:51:31 (+2,-29,-11)
    何か3.4.5 だとSJISもうまくコンパイルできないようなんですが
    3.4.2とかを入れないといけないのでしょうか?
    578 : デフォルトの名無 - 2009/10/02(金) 15:06:46 (+34,-30,-42)
    >>577
    当然、-finput-charset=cp932とかやってるんだろうね。
    579 : デフォルトの名無 - 2009/10/02(金) 15:14:14 (+67,+29,-39)
    >>578
    やっていません。
    3.4.5 でも
    そのオプションをつければいけるのでしょうか?
    今やっているのは取りあえず通らない文字を削っているのです

    取りあえず、SJIS はいいとして、インクルードファイルは、3.4.2 とかにしないといけないのでしょうか?
    580 : デフォルトの名無 - 2009/10/02(金) 15:21:26 (+57,+29,-19)
    全部試してみればいいじゃないか
    無料なんだから、めんどくさがってないで自分で解決してみろ
    581 : デフォルトの名無 - 2009/10/02(金) 15:35:55 (+0,-29,-16)
    >>576
    MinGWならwindows APIのソケットを使って下さい。
    582 : デフォルトの名無 - 2009/10/02(金) 17:37:59 (+10,-17,-2)
    4.3.2 にして、色々試していたらコンパイルもリンクも出来ました
    皆さん、どうもありがとうございました。
    583 : デフォルトの名無 - 2009/10/04(日) 20:25:46 (+14,-29,-18)
    MSYSにVIMインストールするにはどうしたらいいんですか?
    584 : デフォルトの名無 - 2009/10/04(日) 20:36:11 (-1,-29,-18)
    手順
    1. vim をインストールする
    585 : デフォルトの名無 - 2009/10/04(日) 20:40:14 (+3,-29,-63)
    >>583
    vimのソースをダウンロードして解答したら中に
    「INSTALL」か「README」っていうファイルがあるはずだからそれを読んでください。
    大概、.configure; make; make install とかすることになりそうだけど。
    586 : 583 - 2009/10/04(日) 21:20:04 (-1,-29,-7)
    MinGW+MSYS環境なのですが,yumみたいなのはついていないのでしょうか?
    587 : デフォルトの名無 - 2009/10/04(日) 21:27:13 (-1,-29,-17)
    よくよく確認してみると、vimってMSYSにデフォルトで入ってるみたいなんだが。
    588 : デフォルトの名無 - 2009/10/04(日) 21:31:53 (+57,+29,-39)
    そういう何もかも込み込みの環境を提供しようとするものではない。
    基本的には configure と make が動くところまでって感じ。
    589 : デフォルトの名無 - 2009/10/04(日) 21:33:46 (+5,-26,-29)
    そうなんですね.
    じゃあソースおとしてコンパイルしてみます.

    最新版のMSYSにはVIMがはいっていないみたいなんですよね
    590 : デフォルトの名無 - 2009/10/04(日) 21:39:51 (+31,-29,-3)
    msysDTK の方に入ってるかも?
    591 : デフォルトの名無 - 2009/10/04(日) 21:40:34 (+0,-29,-28)
    >>589
    一応公式サイトにMSYS用のvimのバイナリっぽいものがあるけど、試しては無い。
    592 : デフォルトの名無 - 2009/10/04(日) 21:43:29 (+39,+8,-13)
    >>590
    いや、DTKにはエディタ系は入ってないっぽい。
    http://sourceforge.net/project/shownotes.php?release_id=131044
    593 : 590 - 2009/10/04(日) 22:55:06 (+62,+29,-34)
    あれ?
    わざわざ入れたことは無い (だって Emacs 派だから!) はずなんだけど俺の環境には vim は入ってるなぁ。
    何かと一緒に入ったんだと思うんだけど、 DTK じゃなかったか。
    594 : デフォルトの名無 - 2009/10/05(月) 22:42:17 (+66,+29,-9)
    TDMいつになったら直るんだ。
    次のg++のバージョンまで直す気がないとか?


    と思ったら似たようなレスが
    >>570でも出ていたか。
    595 : デフォルトの名無 - 2009/10/05(月) 23:40:31 (+55,+27,-7)
    早くバグ直せゴルァ!メールでも送るとか
    596 : デフォルトの名無 - 2009/10/06(火) 01:13:33 (+2,-29,-41)
    http://sourceforge.net/projects/mingw/files/
    MSYS vimに分離されたようだね

    ところで.tar.lzmaファイルってWindowsでは対応ソフト少ないような気がするんだ・・・
    お前さんがたはtar使ってるの?
    597 : デフォルトの名無 - 2009/10/06(火) 01:23:44 (-1,-29,-7)
    俺のtarはv1.13だからlzmaは対応してません。(キリッ)
    598 : デフォルトの名無 - 2009/10/06(火) 01:53:27 (-1,-29,-21)
    俺んとこのtarも1.13だ
    mingw32-gcc-4.4.0が出たときは結局Linuxで展開してからWindowsに持ってきたよ
    ちょっと解せないものを感じた
    599 : デフォルトの名無 - 2009/10/06(火) 02:07:22 (+32,+4,-5)
    windowsじゃないOSでクロスビルドした方が効率いいからね
    600 : デフォルトの名無 - 2009/10/06(火) 02:54:40 (+3,-30,-114)
    tdmのソースの中のehstatic.patchにこんなことやってるところがあるんだけど
    +   HANDLE hmutex = CreateMutexA(0, FALSE, name);
    + if (WaitForSingleObject(hmutex, INFINITE) != WAIT_OBJECT_0)
    + __w32sp_trap();
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 476 + - cannot + - curses + - pthread + - wcout + - wcwidth + - yum + - リダイレクト + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について