「わかりました」>「あんまりわかってません」の間接的な用法


by ayamem
カレンダー
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

クロスコンパイル環境構築まとめ

binutils-2.15、gcc-3.4.2、SDL-1.2.5、freetype-2.1.4、SDL_ttf-2.0.6クロスコンパイル方法

参考URL
gccのビルド…gcc3.3.3編
gccのビルド…gcc3.4.0編
Zaurus SL-C700設定の記録
XScaleなコードを吐くコンパイラを手に入れる
onscripter
np2
X/Qt-2 開発者向け HOWTO
ねこーぷろじぇくとII



1. sources.listの変更
cp /etc/apt/sources.list.in /etc/apt/sources.list
apt-get update
apt-get intall gcc-3.4、binutils、cpp-3.4、linux-kernel-headers、make、patch、flex、gcc-3.4、gcc-3.4-base、libgcc1を選択
(kernelを再構築したい方は、libncurses5-dev、bison)も追加)
1.2 gccリンク
ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
ln -s /usr/bin/gcc-3.4 /usr/bin/cc


2. クロスコンパイル事前準備
dpkg -i glibc-arm_2.2.2-1_i386.deb
dpkg -i linux-headers-arm-sa1100_2.4.6-4_i386.deb
(/opt/Embedix/tools/arm-linux 74MB)
2.1 パッチ当て
cd ~
wget http://210.203.245.133/aka/pthread.diff
wget http://210.203.245.133/aka/sigthread.diff
cd /opt/Embedix/tools/arm-linux/include/
patch < ~/pthread.diff
cd /opt/Embedix/tools/arm-linux/include/bits/
patch < ~/sigthread.diff
2.2
cp -a /opt/Embedix/tools/arm-linux/lib /usr/local/arm-linux/
cp -a /opt/Embedix/tools/arm-linux/include /usr/local/arm-linux/
(これを行わないとpthread.hのincludeに失敗する)
(/usr/local/arm-linux 58MB)

3. binutils-2.15
cd ~
wget ftp://ftp.dti.ad.jp/pub/GNU/binutils/binutils-2.15.tar.bz2
tar jxf binutils-2.15.tar.bz2
cd binutils-2.15 ; mkdir build-arm-linux ; cd build-arm-linux
../configure --prefix=/usr/local/arm-linux/ --enable-shared --target=arm-linux \
--enable-targets=xscale-linux-elf
make all
make install
(/usr/local/arm-linux/ 72MB)


4. gcc-3.4.2
(パッチ当てないとコンパイルに失敗します)
cd ~
wget ftp://ftp.dti.ad.jp/pub/lang/gcc/releases/gcc-3.4.2/gcc-3.4.2.tar.bz2
tar jxf gcc-3.4.2.tar.bz2
wget http://210.203.245.133/aka/elf.diff
cd gcc-3.4.2/gcc/config/arm
patch < ~/elf.diff
cd ~/gcc-3.4.2 ; mkdir build-arm-linux ; cd build-arm-linux
CC=gcc CFLAGS="-O2" CFLAGS_FOR_TARGET="-O2 -mcpu=xscale -Wa,-mfpu=fpa" \
../configure --prefix=/usr/local/arm-linux/ --target=arm-linux --with-cpu=xscale \
--enable-shared --enable-languages=c,c++
make CC=gcc CFLAGS="-O2" CFLAGS_FOR_TARGET="-O3 -mcpu=xscale -Wa,-mfpu=fpa"
make install
(/usr/local/arm-linux/ 110MB)


5. 環境変数設定(必須)
export CROSSCOMPILE=/opt/Embedix/tools
export QPEDIR=/opt/Qtopia/sharp
export QTDIR=/opt/Qtopia/sharp
export PATH=/opt/Embedix/tools/arm-linux/bin:/usr/local/arm-linux/bin:/usr/local/bin:$QTDIR/bin:$QPEDIR/bin:$CROSSCOMPILE/bin:$QPEDIR/bin:$PATH

6. SDL-1.2.5
cd ~
wget http://www.libsdl.org/release/SDL-1.2.5.tar.gz
tar xzf SDL-1.2.5.tar.gz
cd SDL-1.2.5 ; mkdir build-arm-linux ; cd build-arm-linux
../configure --host=i386-linux --target=strongarm-linux \
--prefix=/usr/local/arm-linux/ --enable-video-qtopia \
--disable-video-photon --disable-video-fbcon --disable-video-direct \
--disable-video-ggi --disable-video-svga --disable-video-aalib \
--disable-video-dummy --disable-video-dga --disable-arts --disable-esd \
--disable-alsa --disable-video-x11 --disable-nasm --disable-debug
make
make install


7. freetype-2.1.4
(freetype-2.1.9ではSDL_ttfコンパイルに失敗。またパッチを途中で当てることになります)
cd ~
wget http://belnet.dl.sourceforge.net/sourceforge/freetype/freetype-2.1.4.tar.bz2
tar jxf freetype-2.1.4.tar.bz2
wget http://210.203.245.133/aka/ftoption.diff
cd freetype-2.1.4/include/freetype/config/
patch < ~/ftoption.diff
cd ~/freetype-2.1.4 ; mkdir build-arm-linux ; cd build-arm-linux
../configure --host=i386-linux --target=strongarm-linux \
--prefix=/usr/local/arm-linux/
make
make install

8. SDL_ttf-2.0.6
cd ~
wget http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.6.tar.gz
tar xzf SDL_ttf-2.0.6.tar.gz
cd SDL_ttf-2.0.6 ; mkdir build-arm-linux ; cd build-arm-linux
../configure --host=i686-linux --target=arm-linux \
--prefix=/usr/local/arm-linux/ --without-x
make
make installl
[PR]
by ayamem | 2004-10-30 11:29