解决3.4.2内核编译失败的方法:

声明: 更换工具链编译的方法来自于韦东山老师的课程视频F:\UBOOT移植_LINUX移植_驱动移植(免费)\毕业班第2课_移植UBOOT 2012.04.1\毕业班第2课第1节_移植最新u-boot之初试,如有侵权请联系作者,我会自行删除

1、 首先看看交叉工具链的版本,过低的话换一个版本较高的交叉工具链,因为版本太低会导致一些新的属性无法通过编译,需要换一个新的编译器
book@www.100ask.org:/work/system/linux-3.4.2$ arm-linux-gcc -v //查看工具链版本
Reading specs from /work/tools/gcc-3.4.5-glibc-2.3.6/lib/gcc/arm-linux/3.4.5/specs
Configured with: /work/tools/create_crosstools/crosstool-0.43/build/arm-linux/gcc-3.4.5-glibc-2.3.6/gcc-3.4.5/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/work/tools/gcc-3.4.5-glibc-2.3.6 --with-float=soft --with-headers=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/include --with-local-prefix=/work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.5

sudo tar xjvf arm-linux-gcc-4.3.2.tar.bz2 -C /    //解压工具链

book@www.100ask.org:/work/system/linux-3.4.2$ echo $PATH     //查看工具链路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/tools/gcc-3.4.5-glibc-2.3.6/bin

export PATH=/usr/local/arm/4.3.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games  //重新设置路径

book@www.100ask.org:/work/system/linux-3.4.2$ arm-linux-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
这就成功了

编译的时候出现了这样的错误:


这个可以参考下面的这篇文档:
https://blog.csdn.net/qhzm72/article/details/78635053
我稍微挑几句关键的,要是有所侵权,请联系作者,我会自行删除
因为在新版本的(Linux) 上编译老版本的内核版本出现的错误(新版主机linux内核是4.10,被编译版本的内核是3.0的,好像是这么回事!),解决办法是:将kernel/timeconst.pl中第373行的defined()去掉,留下!@val就可以了
我的到这一步就已经可以完成编译了,具体的内容去看看上面的链接。
查看主机内核版本: uname -a
查看被编译的内核版本; vi Makefile

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值