IMX6Q 升级交叉编译工具链从4.6到4.9.4

平台

IMX6Q 32-bit Armv7 Cortex-A

升级步骤

  • 下载对应的工具链
    工具链下载地址为https://www.linaro.org/downloads/。由于我的平台是Armv7a的,所以我选择下载了gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabi工具链。
    在该网站上还可以下载目标板上的运行环境:sysroot-eglibc-linaro-2017.01-arm-linux-gnueabi.tar.xz。该包里边有一些目标板上运行是需要的库,我会在下边进行说明。
  • 拷贝运行环境到目标板
    在目标板上运行的时候,至少需要以下几个库文件,我们需要拷贝到目标板上。
    libc.so.6
    libgcc_s.so.1
    libm.so.6
    libstdc++.so.6
    ld-linux.so.3
  • 运行测试
    把上述的文件拷贝到目标板的work_place/目录下,用我们的工具链编译一个可执行文件放到work_palce/目录下。
    执行:./ld-linux.so.3 ./a.out
    注意:ld-linux.so.3 需要有可执行权限,我们需要用它来load共享库。如果直接在work_place目录执行./a.out的话,我这边会出现来“./a.out: error while loading shared libraries: libc.so.6: unexpected reloc type oxa0 0xa0”。原因是用目标板上原来自带的4.6的ld-linux.so.3,它会不认识4.9.4的libc.so.6中的reloc type oxa0。
    目标板上运行库的默认是在/lib目录,如果没有显示指定的话,那么会调用默认的库来运行。我这里在当前目录执行,避免了使用/lib目下的库文件。

参考资料

root@Emd-6Q$ ./ld-linux.so.3 ./a.out 
      9162:	
      9162:	relocation processing: libc.so.6 (lazy)
      9162:	
      9162:	relocation processing: libgcc_s.so.1 (lazy)
      9162:	
      9162:	relocation processing: libm.so.6 (lazy)
      9162:	
      9162:	relocation processing: libstdc++.so.6 (lazy)
      9162:	
      9162:	relocation processing: ./a.out (lazy)
      9162:	
      9162:	relocation processing: ./ld-linux.so.3
      9162:	
      9162:	calling init: libc.so.6
      9162:	
      9162:	
      9162:	calling init: libgcc_s.so.1
      9162:	
      9162:	
      9162:	calling init: libm.so.6
      9162:	
      9162:	
      9162:	calling init: libstdc++.so.6
      9162:	
      9162:	
      9162:	initialize program: ./a.out
      9162:	
      9162:	
      9162:	transferring control: ./a.out
      9162:	
uptime 88720
      9162:	
      9162:	calling fini: ./a.out [0]
      9162:	
      9162:	
      9162:	calling fini: libstdc++.so.6 [0]
      9162:	
      9162:	
      9162:	calling fini: libm.so.6 [0]
      9162:	
      9162:	
      9162:	calling fini: libgcc_s.so.1 [0]
      9162:	
      9162:	
      9162:	calling fini: libc.so.6 [0]
      9162:	
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值