中兴机顶盒子,烽火机顶盒子的交叉编译环境搭建

本文介绍如何使用中兴和烽火的交叉编译工具进行交叉编译的过程,包括配置环境变量、使用configure脚本生成Makefile及自定义Makefile的具体步骤。

要交叉编译,关键是要拿到交叉编译的工具,每个厂家的交叉编译工具都不一样,但是大同小异。

 

中兴的我拿到的是  STLinux-2.3.tar.tar 这样的压缩包

 

我解压到我的  /home 目录, 解压出来后的文件夹为  STLinux-2.3_uclibc

 

下来我们需要知道的是 目标板子上的芯片类型是什么类型, 中兴的为  sh4-linux-uclibc,

 

那我们就要找到 这个目标板子对应的 gcc 和 g++

 

中兴的就为 sh4-linux-uclibc-gcc 和 sh4-linux-uclibc-g++

 

所在的目录路径如下所示 :

 

[root@localhost bin]# pwd
/home/STLinux-2.3_uclibc/devkit/sh4_uclibc/bin

 

那我们下来就把这个目录路径添加到 环境变量里面, 让make的时候可以找到 这个路径,如下所示

 

PATH=$PATH:/home/STLinux-2.3_uclibc/devkit/sh4_uclibc/bin

 

在执行 env 这个命令, 就可以看到上面的目录路径添加到环境变量PATH里面了。

 

 

对于一个有 configure 文件的软件来说, 生成Makefile很简单,只需要指定 --host CC=""  CXX="" 即可。

 

具体为:

./configure --host=sh4-linux-uclibc CC="sh4-linux-uclibc-gcc" CXX="sh4-linux-uclibc-g++"

 

下来 make 就可以了。

 

对于自己写的 Makefile文件,思路是一样的, 下面贴出我自己的Makefile文件对应的交叉编译配置 :

 

 

 

烽火的盒子也是一样的原理:

 

我拿到的烽火的交叉编译工具为 crosstools.tar

 

我也把它解压到  /home 目录

 

烽火的板子上的芯片为 mipsel-linux

 

我么也是找到对应的 gcc 和 g++

 

在 /home/crosstools/bin 这个目录下面有  mipsel-linux-gcc  和 mipsel-linux-g++

 

对于有 configure 文件的代码来说,执行下面的命令即可生成 Makefile文件 :

./configure --host=mipsel-linux  CC="mipsel-linux-gcc"  CXX="mipsel-linux-g++"

 

然后把 /home/crosstools/bin 这个目录添加到 环境编译 PATH中。

 

PATH="/home/crosstools/bin:$PATH" , 然后就可以直接make了。

 

 

自己写的Makefile文件例子如下:

 

make 后就会生成你自己所要的可以在目标板子上运行的可执行程序。

 

我在这次交叉编译时,发现一个问题, 就是 执行 pthread_attr_init 时, Segmentation fault 程序段错误。 原因就是libpthread.so 文件交叉编译的与目标板子上的版本不一致,后来我直接把 libpthread.a静态编译后就可以了。

 

 

 

 

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

langeldep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值