6

libgcc_s_dw2-1.dll私が書いたプログラムはSFMLを使用していますが、欠落しているため実行すると失敗します。私はtdm-gccを使用していますが、コンピューターのどこにもファイルが見つからず、再インストールしても効果がなく、単純なhello worldプログラムが正常に機能するため、このdllが必要な理由がわかりません。

これはどのmingwパッケージにありますか?サイトを検索しましたが見つかりません。明らかな検索結果を見逃してしまった場合はお詫びしますが、これは非常に苛立たしいことです。よろしくお願いします。

PSちなみに私は64ビットのWindows7を使用しています

編集:申し訳ありませんが、同じ問題の別の質問に対する回答をすでに読んだことを忘れましたが、私が言ったように、ファイルはコンピューターのどこにも、binディレクトリなどにも見つかりません。また、コンパイラやリンカにとを渡す-static-libgccと、が得られます。私がこれをすでに読んだことを明確にしないことをお詫びします。ありがとうございました!-static-libstdc++unrecognized option '-static-libstdc++'

4

2 に答える 2

4

このファイルは、DWARF情報を使用して例外処理を実装します(新しいスタイルと、古いスタイルのsetjump / longjumpまたはSJLj)。

したがって、コードが何らかの例外に依存している場合にのみ必要です。

運が良ければ、ここからこのファイルの私自身のコンパイルを入手できます。

于 2012-02-17T19:41:47.310 に答える
4

これは、Microsoft Visual Studioのセットアップではなく、tdm/gccコンパイラの問題だと思います。

libgcc_s_dw2-1.dllコンパイラのbinディレクトリにある必要があります。ランタイムリンク用にこのディレクトリをPATH環境変数に追加するか、コンパイラフラグに「-static-libgcc-static-libstdc++」を追加することで問題を回避できます。

実行可能ファイルを配布する場合は、おそらく後者が最も理にかなっています。自分のマシンでのみ実行することを計画している場合は、PATH環境変数を変更することは魅力的なオプションです(実行可能ファイルのサイズを抑えます)。

更新しました:

Greg Treleavenからのフィードバック(以下のコメントを参照)に基づいて、次のリンクを追加します。

[Code::Blocksのスクリーンショット「プロジェクトビルドオプション」]

[GNUgccリンクオプション]

後者の説明には-static-libgcc-static-libstdc++リンカーオプションが含まれています。

于 2012-02-17T14:49:03.123 に答える