FON2100E openwrt backfire 10.03.1用クロスコンパイル環境の構築
昨日やったのでかなりうろ覚え。ホストはarch linux x86_64
参考:http://wiki.openwrt.org/doc/howto/buildroot.exigence
svn co --revision=29596 svn://svn.openwrt.org/openwrt/branches/backfire cd backfire ./scripts/feeds update -a make menuconfig # targetとか設定 m -j 8 export PATH=$PATH:`pwd`/staging_dir/toolchain-mips_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin export CC=mips-openwrt-linux-uclibc-gcc export LD=mips-openwrt-linux-uclibc-ld
あとは適当にクロスコンパイル。configure引数:
CFLAGS=-Os ./configure --build=x86_64-pc-linux-gnu --host=mips-openwrt-linux-uclibc --target=mips-openwrt-linux-uclibc
C++プログラムはこのままだとstdc++にリンクする(でかい!)ので、uclibcxxを使いたい。
uclibcxxのビルド:
./scripts/feed install -p uclibcxx make menuconfig # libs/uclibcxxをYに指定 m package/uclibc++/compile V=99 m package/uclibc++/install V=99
configure指定してクロスコンパイル対象のビルド。適宜変更すること:
CFLAGS=-Os CXXFLAGS="-fno-builtin -nostdinc++" LDFLAGS="-L/home/kouhei/openwrt/backfire/staging_dir/target-mips_uClibc-0.9.30.1/usr/lib" CPPFLAGS="-I/home/kouhei/openwrt/backfire/staging_dir/target-mips_uClibc-0.9.30.1/usr/include/uClibc++" LIBS="-nodefaultlibs -luClibc++ -lm -lgcc" ./configure --build=x86_64-pc-linux-gnu --host=mips-openwrt-linux-uclibc --target=mips-openwrt-linux-uclibc
stripしとくといいかも:
mips-openwrt-linux-uclibc-strip hogehoge
openwrt上で:
opkg update opkg install uclibcxx
これで動くバイナリができるはず。