これと同様の質問がすでに出されていることは知っていますが、この問題を何時間も修正できませんでした。
基本的に、コードを含む DLL とそれを呼び出すアプリケーションがあります。すべて正常に動作しますが、開発環境の外で 2 つを使用するとlibgcc_s_dw2 1.dll
、コンピューターに が見つからないため、プログラムを開始できないと表示されます。
開発用コンピューターではないことを考えると、これは十分に公平です。そのため、配布用にコンパイラ フラグ " -static-libgcc -static-libstdc++
" を追加しました。私はdllとアプリケーションに対してこれを行いました。
しかし、アプリケーションをコンパイルすると、次のエラーが発生します。
「`_Unwind_Resume' の複数定義」
これは、dll とアプリケーションの両方に静的ライブラリが組み込まれているためだと思いましたが、そうです。ただし、両方に静的ライブラリが組み込まれていない場合、プログラムはエンド ユーザーのマシンでは実行されません。
mingw ライブラリに依存していない状態で、このエラーを取り除くにはどうすればよいですか? 私の IDE は Code::Blocks です。
デビッド
編集: dll にリンクするアプリケーションをビルドするときのビルド ログは次のとおりです。
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/libgcc_eh.a(unwind-dw2.o):(.text+0x298c): multiple definition of `_Unwind_Resume'
..\EquilibriumEngine\bin\Release\libEquilibriumEngine.dll.a(d000015.o):(.text+0x0): first defined here
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
2 errors, 0 warnings