トップページ > 過去ログ > 記事閲覧
最新版にしたらコンパイルできなくなりました
名前:みけCAT 日時: 2012/07/23 21:32

gcc4.7.0、DXライブラリ3.08cです。 前のバージョンでは普通にコンパイルできていたのですが、 最新版にしてみたらコンパイルが通らなくなりました。 どうしたらいいでしょうか? [Linker error] undefined reference to `___gxx_personality_sj0' [Linker error] undefined reference to `__Unwind_SjLj_Register' [Linker error] undefined reference to `__Unwind_SjLj_Unregister' [Linker error] undefined reference to `__Unwind_SjLj_Resume' というエラーが大量に出ます。 プロジェクトはここに上げます。 h_tp://ll.la/;SKW DXパスは「DXlib308c」です。

Page: 1 |

Re: 最新版にしたらコンパイルできなくなりました ( No.1 )
名前:みけCAT 日時:2012/07/23 21:36

すいません。 最新版だけでなく、Ver 3.06cでも発生しました。
Re: 最新版にしたらコンパイルできなくなりました ( No.2 )
名前:みけCAT 日時:2012/07/23 21:45

どうやら、DXライブラリをコンパイルしたコンパイラと 自分が使用しているコンパイラのバージョンの不一致が原因の可能性があります。 h_tp://stackoverflow.com/questions/2189681/undefined-references-when-trying-to-link-qt-app-with-my-static-library
Re: 最新版にしたらコンパイルできなくなりました ( No.3 )
名前:いっち 日時:2012/07/24 20:55

MinGW向けで問題が出た場合はDevC++向けを、DevC++向けで問題が出た場合はMinGW向けの DXライブラリをとりあえずお試し下さい。 以下は参考スレッドです。(あまりまとまっていませんが・・・) > ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=2232
Re: 最新版にしたらコンパイルできなくなりました ( No.4 )
名前:みけCAT 日時:2012/07/24 22:08

DevC++向け、MinGW向けって何ですか? 通常版で該当しそうなものは「Gnu C++用」しか見つからないのですが。
Re: 最新版にしたらコンパイルできなくなりました ( No.5 )
名前:みけCAT(暫定解決) 日時:2012/07/24 23:01

ソースからlibDxLib.aとlibDxDrawFunc.aとlibDxUseCLib.aをコンパイルし、リンクしたら、 このプログラムのコンパイルが通り、実行ができました。 #include "DxLib.h" char Key[256]; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ if( ChangeWindowMode(TRUE) != DX_CHANGESCREEN_OK || DxLib_Init() == -1 ) return -1; //初期化処理 SetDrawScreen( DX_SCREEN_BACK ); //裏画面に設定 while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]){ //↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されていない //ココに処理を書いていく DrawLine(10,10,100,110,GetColor(255,255,255)); DrawBox(110,10,210,110,GetColor(255,0,0),TRUE); DrawCircle(220+50,10+50,50,GetColor(0,255,0),TRUE); DrawTriangle(330+50,10,330,110,430,110,GetColor(255,0,255),TRUE); DrawString(10,200,"DXライブラリテスト",GetColor(0,255,255)); DrawFormatString(10,250,GetColor(255,255,0),"%d+%d=%d", 111,999,111+999); ScreenFlip();//裏画面を表画面に反映 } DxLib_End(); return 0; }
Re: 最新版にしたらコンパイルできなくなりました ( No.6 )
名前:みけCAT(暫定解決) 日時:2012/07/24 23:12

最初のプロジェクトもコンパイルできました。 しかし、libDxUseCLib.aのコンパイルの時に、 btBulletDynamicsCommon.hがないというエラーが出たので、 -DDX_NON_BULLET_PHYSICSをつけてごまかしました。 他の二つのライブラリのコンパイルのときもつけました。 表面上問題は出ていませんが、 libbulletcollision.aとlibbulletdynamics.aとlibbulletmath.aのソースコードが見つからず、 コンパイルできていないのが心配です。
Re: 最新版にしたらコンパイルできなくなりました ( No.7 )
名前:いっち 日時:2012/07/24 23:29

> DevC++向け、MinGW向けって何ですか? > 通常版で該当しそうなものは「Gnu C++用」しか見つからないのですが。 DxLib_GCC3_08c.exe を解凍すると以下のようなフォルダ構成が出来ると思います。 DxLib_GCC +-help +-Tool +-サンプルプログラム実行用フォルダ +-プロジェクトに追加すべきファイル_GCC(Dev-cpp)用 +-プロジェクトに追加すべきファイル_GCC(MinGW)用
Re: 最新版にしたらコンパイルできなくなりました ( No.8 )
名前:みけCAT(暫定解決) 日時:2012/07/25 00:00

>> DevC++向け、MinGW向けって何ですか? >> 通常版で該当しそうなものは「Gnu C++用」しか見つからないのですが。 > >DxLib_GCC3_08c.exe を解凍すると以下のようなフォルダ構成が出来ると思います。 > >DxLib_GCC >+-help >+-Tool >+-サンプルプログラム実行用フォルダ >+-プロジェクトに追加すべきファイル_GCC(Dev-cpp)用 >+-プロジェクトに追加すべきファイル_GCC(MinGW)用 なるほど、そうでしたね。
Re: 最新版にしたらコンパイルできなくなりました ( No.9 )
名前:いっち 日時:2012/07/25 19:05

使用するライブラリを入れ替えてみてもうまくいかないのでしょうか?
Re: 最新版にしたらコンパイルできなくなりました ( No.10 )
名前:みけCAT(暫定解決) 日時:2012/07/25 22:47

>使用するライブラリを入れ替えてみてもうまくいかないのでしょうか? とりあえず再コンパイルでうまくいったので、試していません。
Re: 最新版にしたらコンパイルできなくなりました ( No.11 )
名前:いっち 日時:2012/07/25 23:59

とりあえず私の環境では ・GCC(Dev-cpp)用が --enable-sjlj-exceptions オプションでビルドされた gcc を使ってリンクできること ・GCC(MinGW)用が --disable-sjlj-exceptions オプションでビルドされた gcc を使ってリンクできること を最新版のDXライブラリで確認しています。 面倒だったのでMinGW公式の最新のgccがどのようなオプションでビルドされているかなどは試していません。

Page: 1 |