トップページ > 記事閲覧
MinGWでリンクが出来ない
名前:名無しの梨 日時: 2025/05/18 00:15

以下のコマンドを実行したところ、コンパイルは問題なく出来ますが、リンクでエラーが発生します。 g++ -c test.cpp -IF:\cpp\DxLibrary -DDX_GCC_COMPILE g++ test.o -LF:\cpp\DxLibrary -lDxLib -lDxUseCLib -lDxDrawFunc -ljpeg -lpng -lzlib -ltiff -ltheora_static -lvorbis_static -lvorbisfile_static -logg_static -lbulletdynamics -lbulletcollision -lbulletmath -lopusfile -lopus -lsilk_common -lcelt ここで、「F:\cpp\DxLibrary」には「プロジェクトに追加すべきファイル_GCC(MinGW)用」から「13_1_0_x86_64_w64」の中身のコピーが入っています。 エラーは以下の通りです。 F:/cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: F:\cpp\DxLibrary/libDxUseCLib.a(DxUseCLib.o):DxUseCLib.cpp:(.text+0xa63): undefined reference to `_setjmp' F:/cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: F:\cpp\DxLibrary/libDxUseCLib.a(DxUseCLib.o):DxUseCLib.cpp:(.text+0xf88c): undefined reference to `_setjmp' F:/cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: F:\cpp\DxLibrary/libDxUseCLib.a(DxUseCLib.o):DxUseCLib.cpp:(.text+0xfed5): undefined reference to `_setjmp' F:/cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: F:\cpp\DxLibrary/libDxUseCLib.a(DxUseCLib.o):DxUseCLib.cpp:(.text+0x103a0): undefined reference to `_setjmp' F:/cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: F:\cpp\DxLibrary/libpng.a(png.o):png.c:(.text+0x1356): undefined reference to `_setjmp' F:/cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/13.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: F:\cpp\DxLibrary/libpng.a(pngerror.o):pngerror.c:(.text+0xc05): more undefined references to `_setjmp' follow collect2.exe: error: ld returned 1 exit status MinGWのバージョンは13.1.0で、以下のリンクの「x86_64-13.1.0-release-win32-seh-ucrt-rt_v11-rev1.7z」をダウンロードしました。 github.com/niXman/mingw-builds-binaries/releases 大変恐縮ですが、ご確認いただけますと幸いです。
メンテ

Page: 1 |

Re: MinGWでリンクが出来ない ( No.1 )
名前:管理人 日時:2025/05/18 05:18

恐らく x86_64 13.1.0 でもDXライブラリとは微妙に異なるコンパイル環境となっていて リンクが失敗しているのではないかと思います 名無しの梨さんが現在の mingw 環境を構築された際に使用されたダウンロードサイトや ダウンロードされた項目などを教えて頂けますでしょうか? ( 名無しの梨さんと同じ mingw の環境で作成したDXライブラリの aファイルであれば 正常にリンクできるものが作成できると思いますので… ) 他には、『mingw undefined reference to `_setjmp'』のキーワードで検索してみたところ 英語ですがこちらのようなスレッドが引っかかりました <MinGW でライブラリをビルドするときに `_setjmp' への未定義の参照が発生する> https://en.sfml-dev.org/forums/index.php?topic=28647.0 日本語翻訳してみた限りでは『WinLibs の MSVCRTバージョンをダウンロードする必要があります』とのことです
メンテ
Re: MinGWでリンクが出来ない ( No.2 )
名前:名無しの梨(解決) 日時:2025/05/18 10:51

ご返信いただきありがとうございます。 ダウンロードの経緯としては、MinGWの公式(mingw-w64.org)から「Douwnloads」 > 「Pre-built Toolchains」、「MinGW-W64-builds」からGitHubに移動し、 「Release of 13.1.0-rt_v11-rev1」の「Assets」から「x86_64-13.1.0-release-win32-seh-ucrt-rt_v11-rev1.7z」をダウンロード・解凍して使用しました。 「i686」や「posix」等をダウンロードして実行したところ同様のエラーが発生しました。 ここで、「DxLib_GCC\プロジェクトに追加すべきファイル_GCC(MinGW)用」の12_1_0や12_2_0のディレクトリ名が、今回ダウンロードしたMinGWと似ていたため、 試しに12_2_0を使用した結果、正常に動作しました。 特に問題なさそうなので、こちらのバージョンを使用したいと思います。 迅速かつ丁寧にご対応いただき、誠にありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存