qemuでjpegを表示
LinuxカーネルをARMでクロスコンパイルしてqemu上で動くまでいったが、とりあえずグラフィック表示してみないと面白くないということで、jpegのエンコード・デコードライブラリであるlibjpegをクロスコンパイルして、これまで構築した組込みLinuxカーネル上で動かしてみた。
libjpegのクロスコンパイル
クロスコンパイラの環境変数設定
export TARGET=arm-unknown-linux-gnueabi export CROSS=%{クロスコンパイラフォルダ} export SYSROOT=$CROSS/$TARGET/sysroot export PATH=$PATH:$CROSS/bin
コンフィグレーションの実行
ダウンロードしてきたlibjpegソース圧縮ファイルを解凍して、コンフィグレーションを実行する。
$CC=$TARGET-gcc ./configure --host=$TARGET --prefix=$SYSROOT
コンパイル実行
$make $make install
make installが正常に終了すると、$SYSROOT/libフォルダ配下に以下のファイルが出来ているはず。
libjpeg.a libjpeg.so libjpeg.so.9 libjpeg.so.9.0.0
サンプルプログラムのクロスコンパイル
FrameBufferを利用してjpegを画面に表示するサンプルプログラム(下記URLからダウンロード)をクロスコンパイルする。
http://ux.getuploader.com/kero_bimouroku/download/1/libjpegex.zip
$ $TARGET-gcc -c image.c -I$SYSROOT/include $ $TARGET-gcc -c main.c -I$SYSROOT/include $ $TARGET-gcc -o sjpg *.o -ljpeg