Linux_4_arm交叉编译

5 篇文章 0 订阅
5 篇文章 0 订阅

一、安装arm交叉编译工具arm-2009q3-67-arm-none-linux-gnueabi

Linux下编译生成arm交叉编译工具很复杂,像我一样的新手,可以直接下载别人已经编译好的arm交叉编译工具。

下载地址点击打开链接

http://www.veryarm.com/arm-none-linux-gnueabi-gcc#linux

(1)下载文件

arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

(2)解压缩

# 解压缩 

sudo tar -xvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 

# 解压缩后文件为 /home/ff/arm-2009q3
sudo mv arm-2009q3 /usr/local 

# 授权 
sudo chmod 777 /usr/local/arm-2009q3 -R 

# 配置arm编译工具环境变量 

sudo vim /etc/profile 

# 在/etc/profile文件最后添加如下内容,保存并退出 

export ARM=/usr/local/arm-2009q3/bin export PATH=$ARM:$PATH 

# 使环境变量生效 

source /etc/profile

(3)测试输入arm

按tab键,如果能给出提示 :arm-none-linux-gnueabi-表示arm交叉编译工具生效。

可以编写测试test.cpp文件,应用

# 编译test可执行文件 

arm-none-linux-gnueabi-g++ test.cpp -o test

将test放到tftp根目录下(linux系统作为tftp-server如果没有则需要先安装tftp,嵌入式中一般内置了tftp-client)。在嵌入式设备中通过

# 下载tftp服务端中提供的test可执行文件 

tftp -g -r test 192.168.207.104 

# 修改test权限 

chmod 777 test 

# 运行test 

./test

二、Ubuntu下安装Hi3518交叉编译环境

(1)下载Hi3518E V200R001C01SPC040

在路径./software/board下,找到Hi3518E_SDK_V1.0.4.0.tgz

(2)将Hi3518E_SDK_V1.0.4.0.tgz移动到Ubuntu中

我的Ubuntu是16.04 i386版本。

(3)解压缩Hi3518E_SDK_V1.0.4.0.tgz

sudo tar -xzf Hi3518E_SDK_V1.0.4.0.tgz

(4)运行sdk.unpack脚本解压缩osdrv到当前目录

这里提示
 ./sdk.unpack: 2 : ./sdk.unpack: source: not found.
 ...
百度得知是脚本解析有问题,原因ubuntu16.04 系统默认的SH(脚本解析器)为dash,可以使用 ls -l /bin/sh 命令查看。
dash解析器的解析效率很高,但是功能不如bash那么强大,因此,在解析有些命令时,会出现找不到的错误。
修改默认脚本解析器为bash,方法如下:
           1、命令行输入:sudo dpkg-reconfigure dash
           2、选择<no>
           3、ls -l /bin/sh 查询确认
还可以直接修改两个脚本文件,使用bash解释执行这两个脚本
       1、修改Hi3518E_SDK_V1.0.4/scripts/common.sh文件
      将第一行 #!/bin/sh   改为   #!/bin/bash
       2、修改Hi3518E_SDK_V1.0.4/sdk.unpack文件
           将第一回 #!/bin/sh    改为   #!/bin/bash
修改完成,重新执行命令: sudo ./sdk.unpack
(5)安装Hi3518E交叉编译工具
进入目录: Hi3518E_SDK_V1.0.4/osdrv/opensource/toolchain/arm-hisiv300-linux
运行脚本cross.install.v300.
 sudo ./cross.install.v300
安装完成后,使环境变量生效:
 source /etc/profile
(6)验证
输入arm,按tab键,会提示arm-hisiv300-linux-g++等提示。

三、arm交叉编译alsa

(1)下载alsa-lib库

(2)解压缩

放在路径 /usr/local/alsa-arm

(3)配置

sudo ./configure --host=arm-linux --prefix=/usr/local/alsa-arm

会在/usr/local/alsa-arm下生成makefile文件,创建include文件及其内的.h文件

注释:

--host=arm-linux  :  编译目的机器为arm

--prefix=... : 配置安装路径为?/usr/local/alsa-arm

(4)编译

sudo make

sudo make install

生成include ,lib文件。拷贝到alsa-lib下对应的头文件和库文件目录中。


***************** warning******************

不知什么原因,我在sudo make install时,提示出错,无法生成Lib库文件。

但是网上资料都是这么介绍,我暂且记录下来以后有时间再去解决。

******************warning******************

我的解决方案是,直接把别人编译后的include,lib拿过来放到arm-none-linux-gnueabi下对应文件夹中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值