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

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

确定
我再想想
选择版块

大咖说

发帖: 7粉丝: 6

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2020-2-10 15:10:53 3105 29 楼主 显示全部楼层
[干货分享] 【回帖有奖】《云话鲲鹏之大咖来了》第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期:#初识鲲鹏#之“技术小姐姐带你秒懂华为云鲲鹏云服务和解决方案”



举报
分享

分享文章到朋友圈

分享文章到微博

笨蛋快跑

发帖: 29粉丝: 4

级别 : 版主

Rank: 7Rank: 7Rank: 7

发消息 + 关注

发表于2020-2-12 16:27:11 沙发 显示全部楼层

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

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

linaro的主要功能是交叉编译

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

没想出昵称

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-13 16:39:53 板凳 显示全部楼层

linaro的主要功能是交叉编译

点赞 评论 引用 举报

左双清

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-18 15:47:56 地板 显示全部楼层

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

点赞 评论 引用 举报

sliver

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-19 11:25:46 5# 显示全部楼层

linaro的主要功能是什么?

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

点赞 评论 引用 举报

宋天伦

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 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

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-19 17:08:41 7# 显示全部楼层

先赞一个。

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


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

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

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

jinwowo

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-19 17:27:22 8# 显示全部楼层

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

点赞 评论 引用 举报

小小2018

发帖: 17粉丝: 2

级别 : 注册会员

Rank: 2

发消息 + 关注

发表于2020-2-20 10:10:31 9# 显示全部楼层

linaro的主要功能是什么?

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

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

点赞 评论 引用 举报

一曲新词酒...

发帖: 0粉丝: 0

级别 : 新手上路

Rank: 1

发消息 + 关注

发表于2020-2-20 10:47:07 10# 显示全部楼层

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

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册