建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
150240hnc3spnhbuatuohj.jpg 汇聚鲲鹏领域技术专家大咖

大咖说

发帖: 10粉丝: 12

级别 : 注册会员

发消息 + 关注

发表于2020-2-10 15:10:53 12300 31
直达本楼层的链接
楼主
显示全部楼层
[干货分享] 【回帖有奖】《云话鲲鹏之大咖来了》第7期:鲲鹏弹性云服务器GCC交叉编译环境搭建

默认标题_公众号封面首图_2020-02-10-0.png


很高兴再次与大家见面,


2020年,我们共同度过了一个不寻常、艰难而又温暖的春节!


此时此刻,


我们都在共同期盼着能早日战胜疫情,回归正常!


中国加油!湖北加油!武汉加油!大家一起加油!



《云话鲲鹏之大咖来了》第7期为大家邀请到的是一位新朋友:华为云鲲鹏技术生态经理—南七技校林书豪,本期我们将跟着这位大咖一起来看看如何用鲲鹏弹性云服务器完成GCC交叉编译环境搭建!



本期大咖简介


杨福东_副本.jpg


【论坛昵称】南七技校林书豪

【大咖称号】华为云鲲鹏技术生态经理

【大咖技能】多年软件开发经验,丰富的鲲鹏软件移植验证经验



正文:鲲鹏弹性云服务器GCC交叉编译环境搭建


1、简介

交叉编译,简单地说,就是在一个平台上生成另一个平台上的可执行代码。本指南主要内容为在非ARM架构服务器环境下搭建ARMGCC编译环境,编译基于ARM架构的应用软件。交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。除了体系结构相关的编译选项以外,其使用方法与Linux主机上的GCC相同。

搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出ARM架构下Linux系统所需的操作系统、应用程序等,然后再上传到鲲鹏弹性云服务器执行。

2、环境

类别

版本

配置

备注

ARM测试服务器

CentOS7.5

kc1.large.2 | 2vCPUs | 4GB

在华为云官网购买https://www.huaweicloud.com/product/ecs.html

x86编译服务器

CentOS7.5

2vCPUs|4GB|s3.large.2

 

1.在华为云官网购买https://www.huaweicloud.com/product/ecs.html

2.本地服务器部署Centos7.5

x86编译服务器

Ubuntu16.04

2vCPUs|4GB|s3.large.2

1.在华为云官网购买https://www.huaweicloud.com/product/ecs.html

2.本地服务器部署Ubuntu16.04

交叉编译器

arm-linux-gcc

 

5.5.0

https://releases.linaro.org/components/toolchain/binaries/5.5-2017.10/aarch64-linux-gnu/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

3、交叉编译器安装(x86服务器)

3.1.安装标准的C开发环境

执行以下命令:

Ubuntu apt-get install build-essential

CentOS yum groupinstall Development Tools

3.2.在/usr/local下建立名为ARM-toolchain的文件夹

mkdir   /usr/local/ARM-toolchain

3.3 下载gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

    可以通过wget的形式下载

cd   /usr/local/ARM-toolchain

wget https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

     也可以从网页上下载后上传到/usr/local/ARM-toolchain目录下。交叉编译工具链的地址在

https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/

      下载gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

下载完成后,解压tar

tar -xvf   gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz

3.4.配置环境变量

修改配置文件,在配置文件的最后一行加入路径配置:

Ubuntuvim /etc/bash.bashrc

# Add ARM toolschain path

PATH= /usr/local/ARM-toolchain/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin:"${PATH}"

CentOS vim /etc/profile

# Add ARM toolschain path

export   PATH=$PATH:/usr/local/ARM-toolchain/gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu/bin

3.5.环境变量生效与测试

执行以下命令:

Ubuntusource /etc/bash.bashrc

         aarch64-linux-gnu-gcc  -v

执行上面的命令,显示arm-linux-gnueabi-gcc -v信息和版本

CentOS source /etc/profile

         aarch64-linux-gnu-gcc  -v

执行上面的命令,显示arm-linux-gnueabi-gcc -v信息和版本

交叉编译.png

4、测试

4.1.x86服务器交叉编译

1、创建hello.c

执行:vim hello.c

#include <stdio.h>

int main(void)

{

            printf("hello linux\n");

          return   0;

}

2.交叉编译

执行:aarch64-linux-gnu-gcc -o arm-hello hello.c

4.2.测试执行

1、在x86服务器上测试

执行:chmod +x arm-hello

执行:./arm-hello

页面显示:-bash: ./arm-hello: cannot   execute binary file

 

2. 拷贝执行文件至ARM服务器

执行:chmod +x arm-hello

执行:./arm-hello

页面显示:hello linux

 

5、参考信息

     交叉编译指导: https://releases.linaro.org/components/toolchain/binaries/

https://blog.csdn.net/mars1743/article/details/20492285


有奖问答:linaro的主要功能是什么?


回帖有奖


获奖方式:

1、在本帖回复与本期主题相关的任意有效内容有奖问答问题,均可获得100码豆哦!(数量有限,先到先得)

2、活动结束后,本期大咖将会从参与有奖问答问题的评论中挑选出3个优质评论,奖励码豆2000个


有奖问答:linaro的主要功能是什么?


活动规则:

1、活动时间:2020年2月10日---2020年2月29日

2、所有用户均可参与,为杜绝恶意灌水,每个ID连续回复不得超过3楼,总回复不得超过10楼,否则取消获奖资格,奖品顺延至下一有效楼层;

3、中奖用户不重复;

4、码豆发放需要在活动结束后统一发放,需要提供正确的华为云账号名,开奖后请于3日内私信楼主提供个人信息,逾期作废,*注意事项:1.用户需要至少登陆过一次DevCloud会员中心。  2.用户提供的账号名需要是注册时首次填写账号名,后期修改过的无法发放。 3.如果用户是一个租户下的子账号,需要同时提供租户名及用户名;3、码豆可兑换商品,请移步https://devcloud.huaweicloud.com/bonususer/home进行兑换;



往期大咖来了:


《云话鲲鹏之大咖来了》第1期:#初识鲲鹏#之“鲲鹏初学者开始指南”


《云话鲲鹏之大咖来了》第2期:#探索鲲鹏#之“创造一个属于自己的鲲鹏开发者环境


《云话鲲鹏之大咖来了》第3期:#探索鲲鹏#之“在鲲鹏上使用编程语言——C语言


《云话鲲鹏之大咖来了》第4期:#探索鲲鹏#之“手把手教你在鲲鹏上使用编程语言——Java、Python”


《云话鲲鹏之大咖来了》第5期:#初识鲲鹏#之“技术小姐姐带你秒懂华为云鲲鹏云服务和解决方案”



举报
分享

分享文章到朋友圈

分享文章到微博

大咖说

发帖: 10粉丝: 12

级别 : 注册会员

发消息 + 关注

发表于2020-3-2 14:06:48
直达本楼层的链接
来自 32#
显示全部楼层

本期获得码豆的小伙伴们注意啦!

本期码豆将在本周统一安排发放,请大家在3月4日之前私信提供你的华为云租户名(已有的不用提供)


用户名 租户名 码豆数
笨蛋快跑 已有 100
没想出昵称
2000
左双清
2000
sliver
2000
宋天伦
100
ahhongy
100
jinwowo
100
小小2018 已有 100
一曲新词酒一杯
100
十年树木
100
hw2019
100
yd00992323
100
xiao
100
lplplp
100
ldl
100
nainaide
100
zhenkun
100
meimeimei
100
zm
100
kun
100
linzhuofeng 已有 100
yyyang
100
yd_27268172
100
ares
100
真爱无敌 已有 100
草木青葱色
100
Hero
100
康斯坦丁
100
韩天成
100


点赞 评论 引用 举报

笨蛋快跑

发帖: 35粉丝: 5

级别 : 版主

发消息 + 关注

发表于2020-2-12 16:27:11
直达本楼层的链接
沙发
显示全部楼层

疫情期间还是坚持做活动,给你们点赞,一起学习

评论
yd_14876119 2020-2-13 16:07 评论

linaro的主要功能是交叉编译

... 查看全部
点赞 评论 引用 举报

没想出昵称

发帖: 0粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020-2-13 16:39:53
直达本楼层的链接
板凳
显示全部楼层

linaro的主要功能是交叉编译

点赞 评论 引用 举报

左双清

发帖: 0粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020-2-18 15:47:56
直达本楼层的链接
地板
显示全部楼层

Linaro是一个非盈利性组织,旨在为ARMRISC架构处理器提供开源的Linux软件和工具的移植和优化。文章中提到的gcc-linaro便是由linaro发布的gcc交叉编译工具,运行在x86平台,编译出能在ARM上运行的软件

点赞 评论 引用 举报

sliver

发帖: 0粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020-2-19 11:25:46
直达本楼层的链接
5#
显示全部楼层

linaro的主要功能是什么?

交叉编译,在不同的架构处理器编译出可执行程序,文中的gcc-linaro是用做在X86编译出适合鲲鹏服务器的可执行程序

点赞 评论 引用 举报

宋天伦

发帖: 0粉丝: 1

级别 : 新手上路

发消息 + 关注

发表于2020-2-19 16:55:53
直达本楼层的链接
6#
显示全部楼层

Linaro 是一间非营利性质的开放源代码软件工程公司,Linaro 公司推出了基于GCC 的ARM交叉编译工具 arm-linux-gnueabihf-gcc。可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。

点赞 评论 引用 举报

ahhongy

发帖: 1粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020-2-19 17:08:41
直达本楼层的链接
7#
显示全部楼层

先赞一个。

合作伙伴普遍担心如果只能在鲲鹏处理器上编译的话,使用户华为云资源做迁移就需要提交源码上云。


评论
大咖说 2020-2-20 10:15 评论

引用楼上回答,gcc-linaro是用做在X86编译出适合鲲鹏服务器的可执行程序,就是说,合作伙伴可以在本地X86的机器上(PC或服务器等),编译出适配鲲鹏处理器的二进制,然后将二进制迁移到华为云上运行,无需将源码迁移到华为云上编译

... 查看全部
点赞 评论 引用 举报

jinwowo

发帖: 0粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020-2-19 17:27:22
直达本楼层的链接
8#
显示全部楼层

linaro是arm和ti三星等成立的一个开源公司,专门做arm上的系统移植工具链和优化等工作。

点赞 评论 引用 举报

小小2018

发帖: 26粉丝: 5

级别 : 中级会员

发消息 + 关注

发表于2020-2-20 10:10:31
直达本楼层的链接
9#
显示全部楼层

linaro的主要功能是什么?

目标在于开发不同公司系统芯片平台的软件互通(交叉编译)。

Linaro提供ARM交叉编译工具链。

点赞 评论 引用 举报

一曲新词酒一杯

发帖: 0粉丝: 0

级别 : 新手上路

发消息 + 关注

发表于2020-2-20 10:47:07
直达本楼层的链接
10#
显示全部楼层

提供云解决方案,手机解决方案,雾解决方案等