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年にリリースされた.
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コンパイラをダウンロードする
直接ダウンロードアドレス:ここ
上記のアドレスが無効な場合は、まずここに入り、以下の赤いボックスに示すリンクをクリックしてください.
開いているWebページで、次のアドレスを選択してダウンロードします.
ステップ2:インストール
次にインストールを開始し、バカな「次へ」を開始し、いくつかのステップのスクリーンショットを示します.
手順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」は、ディスクパーティションテーブルを分析し、ファイル名を検索するソフトウェアで、高速です.
2、現在のgccバージョンを表示し、cmdウィンドウの下でディレクトリ「x:Program FilesCSL Arm Toolchainarm-none-symbianelfbin」に入り、「gcc-v」と入力し、最後の行に現在のgccバージョンが4.3.2であることを表示する.
上図の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)
プロジェクトに整数除算コードがある場合、たとえば:
ステップ6:追加の修飾子を削除する
GCCEを使用してコードをコンパイルする場合、次のようなエラーが発生します.
説明コードに追加の修飾子が存在し、SDKにもいくつかのエラーが存在します.追加の修飾子とは何ですか?次のように赤い枠の中にあります.
上記の赤枠のコードを削除するだけで、新しい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で生成される実装パッケージサイズについて
アドレス: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年にリリースされた.
SDKに付属のコンパイラを破棄して、新しいコンパイラを使用する理由は次のとおりです.
次は、旧バージョンのコンパイラと新しいバージョンのコンパイラを使用して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コンパイラをダウンロードする
直接ダウンロードアドレス:ここ
上記のアドレスが無効な場合は、まずここに入り、以下の赤いボックスに示すリンクをクリックしてください.
開いているWebページで、次のアドレスを選択してダウンロードします.
ステップ2:インストール
次にインストールを開始し、バカな「次へ」を開始し、いくつかのステップのスクリーンショットを示します.
手順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」フォルダの下に以下のいくつかのファイルが見つかります.
ここでは、「Search Everything」と「UltraEdit」を組み合わせて使用することをお勧めします.「Search Everything」は、ディスクパーティションテーブルを分析し、ファイル名を検索するソフトウェアで、高速です.
2、現在のgccバージョンを表示し、cmdウィンドウの下でディレクトリ「x:Program FilesCSL Arm Toolchainarm-none-symbianelfbin」に入り、「gcc-v」と入力し、最後の行に現在のgccバージョンが4.3.2であることを表示する.
上図の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を使用してコードをコンパイルする場合、次のようなエラーが発生します.
説明コードに追加の修飾子が存在し、SDKにもいくつかのエラーが存在します.追加の修飾子とは何ですか?次のように赤い枠の中にあります.
上記の赤枠のコードを削除するだけで、新しいGCEでこのエラーの発生を避けることができ、次の書き方は旧版GCE 3.4.3でコンパイルエラーを引き起こすことはありません.
参考文献