2012-02-17 95 views
5

私が書いたプログラムはSFMLを使用しますが、libgcc_s_dw2-1.dllが存在しないため実行されません。私はtdm-gccを使用していて、どこにいてもコンピュータ上のファイルを見つけることができず、再インストールしても役立たず、単純なhello worldプログラムが正常に動作するので、なぜこのDLLが必要かはわかりません。libgcc_s_dw2-1.dllはどこで入手できますか?

これはどのmingwパッケージにありますか?私はサイト上で検索したが、それを見つけることができない。明白な検索結果を見逃してしまったのですが、これは信じられないほどイライラしています。事前にありがとう、ell。

P.S.私は64ビット版のWindows 7につきまして

編集:申し訳ありませんが、私は既に同じ問題を持ってanother questionに答えを読んでいたことを忘れていましたが、私が言ったように、コンピュータのbinディレクトリまたはそれ以外の場合。また、-static-libgcc-static-libstdc++をコンパイラまたはリンカーに渡すと、私はunrecognized option '-static-libstdc++'となります。申し訳ありませんが、私はこれを既に読んだことを明確にしていません。ありがとうございました!

答えて

3

だからあなたはあなたのコードがどのような種類の例外に依存している場合にのみ、それを必要としなければならない。

あなたがこのファイルの自分の編集を手に入れることができたら、hereから

+0

ありがとうございます!その '.dll'がどこから得られたのか知るために? – Ell

+0

@Ell-実際、私はMinGW全体をソースからコンパイルしました! Ubuntuの箱からクロスコンパイルしました。トリッキーな仕事、そして非常に有益なこと。私はそれについてのブログの投稿を書くことを考えてきたが、十分な決断を得たことはなかった... – rodrigo

+0

うわーは、音がトリッキーです!あなたがそれについてのブログ記事を書くことになったら、それを私に知らせるようにしてください! – Ell

4

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

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

実行可能ファイルを配布する予定がある場合は、後者がおそらく最も理にかなっています。自分のマシンでのみ実行する予定の場合は、PATH環境変数を変更することは魅力的な選択肢です(実行可能ファイルのサイズを維持します)。

更新日:グレッグTreleavenからのフィードバックに基づいて

を(下のコメントを参照してください)、私はへのリンクを追加している。後者の議論が含まれ

[Screenshot of Code::Blocks "Project build options"]

[GNU gcc link options]

-static-libgccリンカーオプションは-static-libstdc++です。ファイルは、DWARF情報(新しいスタイル、対setjump/longjumpまたはSJLj、古いスタイルを使用して例外処理を実装し

+0

私は他の質問へのリンクがコピーや貼り付けよりも適切だと思います。とにかくありがとうございます。 – Ell

関連する問題