交叉編譯opencv3.4之創建交叉編譯工具鏈(二)

環境:
PC系統: ubuntu16.04LTS
目標開發板: itop4412

  1. 源代碼收集
    1.1 下載binutils
    網址:https://mirrors.tuna.tsinghua.edu.cn/gnu/binutils/binutils-2.26.1.tar.bz2

    1.2 下載glibc
    兩種源代碼:
    網址:http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
    http://ftp.gnu.org/gnu/glibc/glibc-ports-2.16.0.tar.xz

    1.3 下載gcc源碼
    下載速度較快
    https://github.com/gcc-mirror/gcc/releases/tag/gcc-4_9_4-release
    下載速度較慢
    ftp://ftp.mpi-sb.mpg.de/pub/gnu/mirror/gcc.gnu.org/pub/gcc/releases/gcc-4.9.0/gcc-4.9.0.tar.bz2

    1.4 下載MPFR
    https://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.gz

    1.5 下載GMP
    https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz

  2. 聯編源代碼
    2.1 聯編binutils
    step1: 進入binutils源文件目錄,並執行
    ./configure --disable-werror --build=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --prefix=/usr/local/arm/arm-gcc-2016/bin --with-sysroot=/usr/local/arm/arm-gcc-2016/sysroot

step2: 執行make
step3: 執行make install,結束

2.2 內核頭文件安裝
step1: 進入內核源代碼根目錄
step2: 執行make mrproper, 清理環境,是的內核源代碼恢復到剛解壓時的狀態
step3: 執行 make ARCH=arm integrator_defconfig
step4: 執行 make ARCH=arm headers_check,此處出現了錯誤:原因不知,暫時忽略。

/home/liqiang/work/linux/iTop4412_Kernel_3.0/usr/include/linux/if_pppox.h:24: included file ‘linux/if_pppolac.h’ is not exported
/home/liqiang/work/linux/iTop4412_Kernel_3.0/usr/include/linux/if_pppox.h:25: included file ‘linux/if_pppopns.h’ is not exported
/home/liqiang/work/linux/iTop4412_Kernel_3.0/usr/include/linux/kernel.h:65: userspace cannot reference function or variable defined in the kernel
/home/liqiang/work/linux/iTop4412_Kernel_3.0/usr/include/linux/kernel.h:97: userspace cannot reference function or variable defined in the kernel
/home/liqiang/work/linux/iTop4412_Kernel_3.0/usr/include/linux/quota.h:175: userspace cannot reference function or variable defined in the kernel
/home/liqiang/work/linux/iTop4412_Kernel_3.0/usr/include/linux/soundcard.h:1054: userspace cannot reference function or variable defined in the kernel
/home/liqiang/work/linux/iTop4412_Kernel_3.0/scripts/Makefile.headersinst:91: recipe for target ‘/home/liqiang/work/linux/iTop4412_Kernel_3.0/usr/include/linux/.check’ failed
make[2]: *** [/home/liqiang/work/linux/iTop4412_Kernel_3.0/usr/include/linux/.check] Error 123
/home/liqiang/work/linux/iTop4412_Kernel_3.0/scripts/Makefile.headersinst:99: recipe for target ‘linux’ failed
make[1]: *** [linux] Error 2
Makefile:1079: recipe for target ‘headers_check’ failed
make: *** [headers_check] Error 2

step5: 執行 make ARCH=arm INSTALL_HDR_PATH=/usr/local/arm/arm-gcc-2016/sysroot/usr headers_install,進行頭文件安裝,結束。

2.3自舉GCC(第一階段)
step1:

./configure
–build=i686-pc-linux-gnu
–host=i686-pc-linux-gnu
–target=arm-none-linux-gnueabi
–prefix=/usr/local/arm/arm-gcc-2016/bin
–without-headers
–enable-boostrap
–enable-languages"c"
–disable-threads
–enable-_cxa_atexit
–disable-libmudflap
–with-gnu-ld --with-gnu-as
–disable-libssp --disable-libgomp
–disable-nls --disable-shared

至此:發現有現成的交叉編譯器下載,地址如下
https://releases.linaro.org/components/toolchain/binaries/
故而終止聯編交叉編譯工具鏈,時間白白浪費了1天。

接下來進入《交叉編譯opencv3.4之下載交叉編譯工具鏈並編譯(三)》,待續

本文參考資料:《Linux嵌入式系統高級程序設計 》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章