トップページ > 記事閲覧
MinGWでリンクしたい
名前:gontarou 日時: 2017/04/16 16:30

いつもVSで使わせてもらってます。 MinGWを使ってみようと思ったのですがg++でリンクする際にエラーが出て困ってます。 ライブラリは「プロジェクトに追加すべきファイル_GCC(MinGW)用\5_3_0_i686」の中身をdxlibフォルダに入れて使ってます。 ソースコードはttp://dxlib.o.oo7.jp/use/dxuse_gcc.htmlをコピペさせてもらいました。 間違っているところがあったら教えてください。 環境 OS : win10 g++: ver 5.3.0 g++ -Wl,"--no-as-needed" -mwindows -Idxlib -Ldxlib \ -DDX_GCC_COMPILE \ -DDX_NON_INLINE_ASM \ -lDxLib \ -lDxUseCLib \ -lDxDrawFunc \ -ljpeg \ -lpng \ -lzlib \ -ltiff \ -ltheora_static \ -lvorbis_static \ -lvorbisfile_static \ -logg_static \ -lbulletdynamics \ -lbulletcollision \ -lbulletmath \ -lopusfile \ -lopus \ -lsilk_common \ -lcelt \ test.cpp C:\Users\セ\AppData\Local\Temp\ccjYmof0.o:test.cpp:(.text+0x7): undefined reference to `DxLib::DxLib_Init()' C:\Users\セ\AppData\Local\Temp\ccjYmof0.o:test.cpp:(.text+0x34): undefined reference to `DxLib::GetColor(int, int, int)' C:\Users\セ\AppData\Local\Temp\ccjYmof0.o:test.cpp:(.text+0x4c): undefined reference to `DxLib::DrawPixel(int, int, unsigned int)' C:\Users\セ\AppData\Local\Temp\ccjYmof0.o:test.cpp:(.text+0x51): undefined reference to `DxLib::WaitKey()' C:\Users\セ\AppData\Local\Temp\ccjYmof0.o:test.cpp:(.text+0x56): undefined reference to `DxLib::DxLib_End()' collect2.exe: error: ld returned 1 exit status make: *** [default] エラー 1
メンテ

Page: 1 |

Re: MinGWでリンクしたい ( No.1 )
名前:管理人 日時:2017/04/16 19:06

私が手元で試したときはコンパイルとリンクを別々に行っていました g++.exe -I"D:\MinGW_5_3_0_i686\include" \ -I"D:\MinGW_5_3_0_i686\lib\gcc\mingw32\5.3.0\include" \ -I"D:\MinGW_5_3_0_i686\lib\gcc\mingw32\5.3.0" \ -I"D:\DxLib\GCC_MinGW\5_3_0_i686" \ -DDX_GCC_COMPILE \ -DDX_NON_INLINE_ASM \ -c test.cpp \ -o test.o g++.exe test.o \ -o test.exe \ -L"D:\DxLib\GCC_MinGW\5_3_0_i686" \ -L"D:\MinGW_5_3_0_i686\lib" \ -L"D:\MinGW_5_3_0_i686\lib\gcc\mingw32\5.3.0" \ -mwindows \ -lDxLib \ -lDxUseCLib \ -lDxDrawFunc \ -ljpeg \ -lpng \ -lzlib \ -ltiff \ -ltheora_static \ -lvorbis_static \ -lvorbisfile_static \ -logg_static \ -lbulletdynamics \ -lbulletcollision \ -lbulletmath \ -lopusfile \ -lopus \ -lsilk_common \ -lcelt 私の手元でも1回でコンパイルとリンクをしようとするとエラーが発生してしまいました リンクの順番などが2回に分ける場合と異なってしまい、それが失敗する原因となっているのかもしれません お手数で申し訳ありませんが2回に分けてビルドするようにしてください m(_ _;m
メンテ
Re: MinGWでリンクしたい ( No.2 )
名前:gontarou 日時:2017/04/16 20:33

二回に分けることで無事exeファイルが生成されました。 ありがとうございます。 ところで、生成したexeファイルを実行しようとすると 「プロシージャエントリポイント_gxx_personality_v0がみつからない」 といったエラーが出てしまいます。 なにかわかることがあれば教えてください。
メンテ
Re: MinGWでリンクしたい ( No.3 )
名前:管理人 日時:2017/04/16 20:49

手元の MinGW 5.3.0 でビルドした実行ファイルの実行には MinGW の bin フォルダにある libgcc_s_dw2-1.dll と libstdc++-6.dll が必要です、実行ファイルと同じフォルダに 置いておくとビルドした実行ファイルを実行することができます
メンテ
Re: MinGWでリンクしたい ( No.4 )
名前:gontarou 日時:2017/04/16 20:54

実行できました。 ありがとうございました!
メンテ

Page: 1 |

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

   クッキー保存