MatsuLab. Lecture Note/sougouenshu2006/3rdround
クロスコンパイル †
本授業では、ポータルノードにて CellBE 用のアプリケーションをクロスコンパイルし、出来たバイナリを CellBE ノードに転送して実行します
コンパイラ †
コンパイラはポータルノードの /opt/sce/toolchain-3.2 以下にあり、使用するCPUの種類によって違うものを利用します。
- ppu-gcc
- PPU で実行するプログラムのためのコンパイラです。64bit用にコンパイルされています。実際に使用するときは IBM PowerPC 用のライブラリ、ヘッダのパスを指定し -m32 パラメータを利用する必要が有るようです。
ppu-gcc ファイル名 -I/opt/IBM/cell-sdk-1.1/sysroot/usr/include -L/opt/IBM/cell-sdk-1.1/sysroot/usr/lib -m32
- spu-gcc
- SPU で実行するプログラムのためのコンパイラです。SPU 用のヘッダパスが必要です
spu-gcc ファイル名 -I${SCRROOT}/spu/lib/gcc/spu/4.0.2/include
以上を理解した上で…以下のシェルスクリプトを使って通常のgccと同じようにコンパイルできます。中身は上に書いてあることがそのまま反映されています
- pgcc
- PPU で実行するプログラムのためのコンパイラ、以下でコンパイル可能。
pgcc ファイル名 (+ 必要なら -o 作成ファイル名や -O などの最適化オプション)
- sgcc
- SPU で実行するプログラムのためのコンパイラ、以下でコンパイル可能。
sgcc ファイル名 (+ 必要なら -o 作成ファイル名や -O などの最適化オプション)