- 500 名前:497 mailto:sage [04/12/22 21:43:50]
- 同じくC++。社内ライブラリにクラス使ってたりするので動く、間違いなく。継承・仮想関数・純粋仮想関数もろもろOK。
で、>>494にあがってたフォーラム2件見てみたのだが、あそこにあがってるmakefileではC++のコンパイルはとおるだろうが実機じゃ動かないと思われ。 コンパイラフラグとして -fno-exceptions -fno-unwind-tables -fno-rtti -ffunction-sections の4つ追加が必要(よって例外とか実行時型判別は使えなくなる)。-ffunction-sectionsは無くても動いたかも。 さらに、ソースコード中どこかに extern "C" void __cxa_pure_virtual(void){} の関数、リンカフラグに --cref 追加。 クラスに対してnew/delete使うならクラスのnew/deleteオーバーロードじゃなく、グローバルスコープでnew/delete/new[]/delete[]をオーバーロードしてやればOK。 うちはこれに気づかず、クラスのnew/deleteオーバーロードしてんのにARMコンパイラ使用時や実機でエラー吐かれるて嵌ったorz あと、元々GNUDEでのBREWバイナリコンパイルは英BREWフォーラムのtyndal氏の記事が元(だと思う)。 brewforums.qualcomm.com/showthread.php?s=bb18a6bbfdca41e8baab0de92c686daa&threadid=1601 ここと、記事に載ってるリンク先を見れば必要な情報は揃うはず(うちはそれでC++環境構築できた)。
|

|