因爲某些原因最近需要編譯一下backfire的openwrt,我的系統是ubuntu是14.04的,應該是因爲backfire太古老了,ubuntu14.04下編譯的時候出現了一些問題,上網查找了這兩個問題的解決方法,留存一下。
編譯出現的第一個錯誤如下所示:
bfd.texinfo:326:unknowncommand `colophon'
bfd.texinfo:337: unknown command `cygnus'
./elf.texi:11: raising the section level of @subsubsection which is too low
make[7]: *** [bfd.info]Error 1
make[7]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd/doc'
Making info in po
make[7]: Entering directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd/po'
make[7]: Nothing to be done for `info'.
make[7]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd/po'
make[7]: Entering directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd'
make[7]: Nothing to be done for `info-am'.
make[7]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd'
make[6]: *** [info-recursive] Error 1
make[6]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/bfd'
make[5]: *** [all-bfd] Error 2
make[5]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1'
make[3]: *** [/home/chuxuan/openwrt/backfire/build_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/binutils-2.19.1/.built]Error 2
make[3]: Leaving directory `/home/chuxuan/openwrt/backfire/toolchain/binutils'
make[2]: *** [toolchain/binutils/compile] Error 2
make[2]: Leaving directory `/home/chuxuan/openwrt/backfire'
make[1]: *** [/home/chuxuan/openwrt/backfire/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/stamp/.toolchain_install]Error 2
make[1]: Leaving directory `/home/chuxuan/openwrt/backfire'
make: *** [world] 錯誤 2
查詢之後發現是binutils版本的問題,在make menuconfig的時候修改一下binutils的版本就可以了。由於對openwrt實在是不怎麼熟悉,尋找這個修改的選項還花了我一點時間,o(╯□╰)o。。修改路徑如下:
make menuconfig---->Advanced configuration options(for developers)---->toolchains---->binutils2.20.1
修改完這個之後,再次進行編譯,但是接着又出現了另外一個問題:
@itemx mustfollow @item
更詳細的錯誤提示如下:
/openwrt/carambola2/build_dir/toolchain-mips_r2_gcc-4.7-linaro_uClibc-0.9.33.2/gcc-linaro-4.7-2012.12/gcc/doc/cppopts.texi:811:@itemx must follow @item
make[5]: *** [doc/cpp.info] Error 1
make[5]: Leaving directory `/openwrt/carambola2/build_dir/toolchain-mips_r2_gcc-4.7-linaro_uClibc-0.9.33.2/gcc-linaro-4.7-2012.12-minimal/gcc'
make[4]: *** [all-gcc] Error 2
make[4]:Leaving directory`/openwrt/carambola2/build_dir/toolchain-mips_r2_gcc-4.7-linaro_uClibc-0.9.33.2/gcc-linaro-4.7-2012.12-minimal'
看這提示應該是和texinfo有點關係, 臨時解決辦法是將shell texinfo降級到4.13(在ubuntu13裏它就被升級到5了,怪不得升級系統到14.04之後就出現了這個問題),降級texinfo的具體辦法如下:通過下載編譯源碼文件可以安裝比較老一點的版本:
wget http://ftp.gnu.org/gnu/texinfo/texinfo-4.13a.tar.gz
tar -zxvf texinfo-4.13a.tar.gz
cd texinfo-4.13
./configure
make
sudo make install
還有一個就是編譯的時候偶爾會出現md5sum mistake的錯誤,我這裏竟然是由於網絡斷了的緣故,所以編譯的時候一定要切記保持網絡的連接。
參考的資料: