Symbian SDKに最新のGCEでコンパイルさせる

8614 ワード

今日1篇の文章を見て、悪くないと思って、作者は3 rd MRバージョンを使って、私は3 rd 2 ndバージョンを使って、いくつか異なっていて、しかし基本的に多くありません.
アドレス:http://www.cnblogs.com/felixYeou/archive/2009/02/18/1392847.html
 
GCEの概要
GCCE(GNU Compiler Collection for Embedded)は、Symbian OS v 9オペレーティングシステムに適したARMアーキテクチャに基づく組み込みコンパイラである.Symbian OS v 9以前のオペレーティングシステムでは、サードパーティ製アプリケーションをコンパイルし、ターゲットデバイスコードを生成するためにGCCコンパイラが使用されていましたが、GCCでは通常、オペレーティングシステム全体のコンパイルは許可されていません.
GCCEコンパイラは、ARM LtdのパートナーであるCodeSourcery社が開発したもので、非常に成熟したARMプロセッサクロスコンパイルツールチェーンです.
なぜGCEをアップグレードするのか
Symbian OS v.9.1+SDKは、GCE CSL Armクロスコンパイルツールチェーンを使用してターゲットデバイスにコードを生成します.しかし、SDKに含まれるGCEコンパイラは非常に古く、3.4.3版で2004年11月にリリースされた.今日までの最新バージョンは4.3.2で、2008年にリリースされた.
image
SDKに付属のコンパイラを破棄して、新しいコンパイラを使用する理由は次のとおりです.
  • コンパイラのコンパイル速度は速くなり、特にCコード
  • に対して
  • コード最適化の問題は少なくなったようです
  • コンパイルされたターゲットコードは小さくなりました(sisファイルは1.5 Mから1 Mに変わりました)
  • コンパイラのバグは
  • より少ない
  • コンパイル時に生成するエラーまたは警告情報がより完全である
  • .
    次は、旧バージョンのコンパイラと新しいバージョンのコンパイラを使用してSDK Examplesをコンパイルした後のターゲットコードサイズの比較です.
    Example Name
    GCC v3.4
    GCC v4.3
    AddressBook
    48 kb
    20 kb
    BrCtlSampleApp
    63 kb
    18 kb
    Messaging
    10 kb
    7 kb
    WebClient
    33 kb
    13 kb
    GCEの更新に着手
    第一歩:最新版GCEコンパイラをダウンロードする
    直接ダウンロードアドレス:ここ
    上記のアドレスが無効な場合は、まずここに入り、以下の赤いボックスに示すリンクをクリックしてください.
    image
    開いているWebページで、次のアドレスを選択してダウンロードします.
    image
    ステップ2:インストール
    次にインストールを開始し、バカな「次へ」を開始し、いくつかのステップのスクリーンショットを示します.
    image
    image
    image
    手順3:古いコンパイラを置き換える
    注意:この手順を実行する前に、関連ファイル/フォルダをバックアップしてください.
    「x:Program FilesCSL Arm Toolchain」の下のすべてのファイルとフォルダを削除し、「x:Program FilesCodeSourcerySourcery G++Lite」の下のすべてのファイルとフォルダを「x:Program FilesCSL Arm Toolchain」の下にコピーします.
    ステップ4:関連するPerlスクリプトとMakeFileファイルの文字列を置換
    注意:この手順を実行する前に、関連ファイル/フォルダをバックアップしてください.
    1、S 60 3 rd MR SDKを例にとると、私のSDKは「D:S 60SDKS 60_3 rd_MR」フォルダの下にインストールされ、「$(EPOCROOT)Epoc 32tools」フォルダの下に以下のいくつかのファイルが見つかります.
  • cl_bpabi.pm
  • cl_gcce.pm//2 ndには
  • はありません
  • ide_cw.pm
  • compilation_config/gcce.mk//2 ndで
  • を変更する必要はありません
    ここでは、「Search Everything」と「UltraEdit」を組み合わせて使用することをお勧めします.「Search Everything」は、ディスクパーティションテーブルを分析し、ファイル名を検索するソフトウェアで、高速です.
    image
    2、現在のgccバージョンを表示し、cmdウィンドウの下でディレクトリ「x:Program FilesCSL Arm Toolchainarm-none-symbianelfbin」に入り、「gcc-v」と入力し、最後の行に現在のgccバージョンが4.3.2であることを表示する.
    image
    上図の4つのファイルを開き、ファイル内のすべての「3.4.3」をgccの現在のバージョン「4.3.2」に置き換えます.
    ステップ5:他のファイルを置換
    注意:この手順を実行する前に、関連ファイル/フォルダをバックアップしてください.
    このステップは、GCC 3において機械的にいくつかを得る.4.3下のコンパイルは合格したが、最新版のコンパイラの下では合格したファイルをコンパイルして修正することができない.私はここでファイルの修正を完成し、ダウンロードを提供する.具体的な修正内容は「参考文献」の関連文章を参照してください.
    以下のコードのSDKはS 60 3 rd MR SDK
    ファイル
    所在経路
    説明
    d32locd.h
    $(EPOCROOT)Epoc32\include\
    2 ndでは交換不要
    gcce.h  
    $(EPOCROOT)Epoc32\include\gcce\
    このファイルを変更した後、各項目のMMPファイルに次の行を加えてください:SYSTEMINLUDEepoc 32includelibc
    libsupc++.a
    x:\Program Files\CSL Arm Toolchain\arm-none-symbianelf\lib\x:\Program Files\CSL Arm Toolchain\arm-none-symbianelf\lib\mfloat-abi=softfp
    2つのフォルダの下にあるファイルを置換
    division.c
    プロジェクトが存在するソースフォルダ(src)
    プロジェクトに整数除算コードがある場合、たとえば:
       TInt a, b, c;
    
       a = 10;
    
       b = 5;
    
       c = a / b;
    このcファイルをプロジェクトのコードに含めると、コンパイラは自動的にこのファイルをコンパイルします.
     
    ステップ6:追加の修飾子を削除する
    GCCEを使用してコードをコンパイルする場合、次のようなエラーが発生します.
    image
    説明コードに追加の修飾子が存在し、SDKにもいくつかのエラーが存在します.追加の修飾子とは何ですか?次のように赤い枠の中にあります.
    image
    上記の赤枠のコードを削除するだけで、新しいGCEでこのエラーの発生を避けることができ、次の書き方は旧版GCE 3.4.3でコンパイルエラーを引き起こすことはありません.
    参考文献
  • GCCE
  • How to use GCCE 4 with Symbian SDKs
  • GCC 4.2.3 provides some space optimisation
  • 3 rd mrと3 rd FP 1で生成される実装パッケージサイズについて