Nanashi-soft○プログラマ専用○Windows gcc SDL○
OSインストール時に入るコンパイラでは、Cell用に最適化されません(2007/03現在)
専用コンパイラが配布されています
・BSC
http://www.bsc.es/
左のCOMPUTER SCIENCESメニューから、
→Programming Models
→Linux on Cell
→Cell BE SDKs
→SDK 2.0
※これを書いている時点で SDK2.1の配布が始まっていますが、調査した時は 2.0でしたので 2.0で説明します
下のほうにダウンロードリンクがあるので、以下のファイルを落とす
右側の Cell BEと書いてある方なので、間違わない用に注意して下さい
・PPC用
ppu-binutils-3.3-72.ppc.rpm
ppu-gcc-3.3-72.ppc.rpm
ppu-gcc-c++-3.3-72.ppc.rpm
ppu-gdb-3.3-72.ppc.rpm
ppu-toolchain-debuginfo-3.3-72.ppc.rpm
・SPE用
spu-binutils-3.3-72.i686.rpm
spu-gcc-3.3-72.i686.rpm
spu-gcc-c++-3.3-72.i686.rpm
spu-gdb-3.3-72.i686.rpm
spu-newlib-3.3-72.i686.rpm
spu-toolchain-debuginfo-3.3-72.i686.rpm
・SPEランタイムライブラリ
libspe2-2.0.1-1.ppc64.rpm
libspe2-2.0.1-1.ppc.rpm
libspe2-devel-2.0.1-1.ppc64.rpm
libspe2-devel-2.0.1-1.ppc.rpm
elfspe2-2.0.1-1.ppc.rpm
これらのファイルをダウンロードして RPMインストールします
rpm -i ファイル名
コマンドで、上から順に行って下さい
順番が違うとインストールできない事があります
elfspe2は最後で無ければエラーがでました
インストールしたコンパイラは、通常の gccコマンドでは使われません
今までのコマンドを、ppu-gccに変えてみると
> ppu-gcc -O2 benki benki.c `sdl-config --cflags --libs` /usr/lib/gcc/ppu/4.1.1/../../../../ppu/bin/ld: skipping incompatible /usr/local/lib/libSDL.so when searching for -lSDL /usr/lib/gcc/ppu/4.1.1/../../../../ppu/bin/ld: skipping incompatible /usr/local/lib/libSDL.a when searching for -lSDL /usr/lib/gcc/ppu/4.1.1/../../../../ppu/bin/ld: skipping incompatible /usr/local/lib/libSDL.so when searching for -lSDL /usr/lib/gcc/ppu/4.1.1/../../../../ppu/bin/ld: skipping incompatible /usr/local/lib/libSDL.a when searching for -lSDL /usr/lib/gcc/ppu/4.1.1/../../../../ppu/bin/ld: cannot find -lSDL collect2: ld returned 1 exit status
凄いエラーが出力されます(泣
ppu-gccは 64bitモードでコンパイルされるので、SDLも 64bit版が必要みたいです
……でもそんな物は存在しないので、コンパイラの方を 32bitでコンパイルするオプションを付けます
> ppu-gcc -m32 -O2 benki benki.c `sdl-config --cflags --libs`