Nanashi-softプログラマ専用Windows gcc SDL


◇PS3 Linux SDLでプログラミング -Cell用コンパイラを使う-

○Cell用コンパイラをインストール

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は最後で無ければエラーがでました

○Cell用コンパイラでビルド

インストールしたコンパイラは、通常の 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`



TOPプログラマ専用PS3 Linux SDL