ProgrammingのTipなど

MSYS2でのC++のコンパイル

MinGW64
ここでは
x86_64-w64-mingw32-g++
をインストールして使う前提で書きます
MSYS2から独立した実行ファイルの作り方
MSYS2とx86_64-w64-mingw32-g++でコンパイルされた実行ファイルは
そのままではMSYS2環境の外では実行できません
lddで調べるとわかりますが
libstdc++-6.dll
libgcc_s_seh-1.dll
libwinpthread-1.dll
の3つのdllを必要とするからです
これらのdllはGCCランタイムライブラリ例外であり
MSYS2のライセンスから除外されますので
実行ファイルとともに配布しても構いませんが
実行ファイルに含めてコンパイルしたい場合は
スタティックにしてリンクさせます
-Bstsic -lgcc -static-libstdc++ -lwinpthread -Bdynamic
をつけてコンパイルします

ただしMSYS2のOpenGLでglewを使っている場合は
glew32.dllを必要とします
スタティックにリンクさせる場合の注意
ただ-stasicだけだど他にも動的ライブラリをリンクさせる必要がある場合
他の動的ライブラリまでスタティックにリンクさせようとしてエラーになるので
ーBstaticにしてスタティックリンクし-Bdynamicの後に動的リンクの命令をつけるようにします

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー2

開くメニュー

閉じるメニュー

  • アイテム
  • アイテム
  • アイテム
【メニュー編集】

管理人/副管理人のみ編集できます