centos arm linux gcc,CentOS安装arm-linux-gcc交叉编译器

(注:首先需要明确需要安装centos系统的位数,即是32位的还是64位的。)

1、下载并解压文件:下载arm-linux-gcc-4.4.3.tgz到任意的目录下,进入这个文件夹

输入命令:# tar xvzf arm-linux-gcc-4.4.3.tgz –C /  【解压文件到 /opt/Friendlyarm/4.4.3 目录】

注意:C后面有个空格,并且C是大写的,它是英文单词“Change”的第一个字母,

在此是改变目录的意思。

在/usr/local/下建立arm的文件夹

输入命令:# mkdir arm  【新建 /usr/local/arm/ 目录】

# chmod 777 arm  【修改此文件夹的权限 ,可用 命令 # cd -ll 查看】

输入命令:# cp -r /opt/Friendlyarm/4.4.3 /usr/local/arm/ 【然后把opt下的4.4.3目录复制到/usr/local下】

2、修改环境变量,把交叉编译器的路径加入到PATH。

方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用)

输入命令:# gedit /etc/bash.bashrc

在最后加上    export PATH=$PATH:/usr/local/arm/4.4.3/bin

方法二(推荐):修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用):

输入命令:# vim /etc/profile

增加路径设置,在末尾添加如下,保存/etc/profile文件:

export PATH=$PATH:/usr/local/arm/4.4.3/bin

方法三:修改/etc/environm:ent文件

输入命令:# gedit /etc/environment

原文件应为  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games“

将其改为      PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin"

保存退出即可

关于路径设置问题,可以 用终端逐步寻找,比如 在 终端下cd /usr/local/用TAB键 一直找到/bin

关于环境变量问题:

环境变量是什么?例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

如果上面不加入环境变量,要运行arm-linux-gcc这个程序,则每次都要把arm-linux-gcc的完整路径写出来。/usr/local/arm/4.4.3/bin arm-linux-gcc文件名-o输出文件名

这样非常的麻烦,所以加到path里面,让电脑知道这个程序在哪里。

3. 立即使新的环境变量生效,不用重启电脑:

对应方法一:

输入命令:# source /root/.bashrc

对应方法二:

输入命令:# source /etc/profile

方法三立即生效

4. 检查是否将路径加入到PATH:

输入命令:#echo $PATH

显示内容/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。

5.测试是否安装成功

输入命令:#arm-linux-gcc -v

若centos为32位系统则会直接安装成功,则会显示如下信息:

Using built-in specs.

Target: arm-none-linux-gnueabi

Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace

Thread model: posix

gcc version 4.4.3 (ctng-1.6.1)

若centos系统为64位时,则会提示一下内容

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

表示没有安装成功,此时则需要做如下操作:

1、在64系统里执行32位程序如果出现/lib/ld-linux.so.2:

bad ELF interpreter: No such file or directory,安装下glic即可

则需要

输入命令:# yum install glibc.i686

【 www.2cto.com  】

2、如果出现error while loading shared libraries: libz.so.1:

cannot open shared object file: No such file or directory

则需要

输入命令:#

yum install zlib.i686

3、如果出现/libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1:

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

则需要

输入命令:#

yum -y install libstdc*

另外若当有缺少共享库的报错:

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

解决办法:

1、输入命令:# yum whatprovides libstdc++.so.6

然后会提示哪个安装包有这个库文件如下:

[root@localhost ~]# yum whatprovides libstdc++.so.6

Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, refresh-packagekit, security, tmprepo, verify,

: versionlock

Loading support for CentOS kernel ABI

Loading mirror speeds from cached hostfile

* base: centos.ustc.edu.cn

* centosplus: centos.ustc.edu.cn

* contrib: centos.ustc.edu.cn

* extras: centos.ustc.edu.cn

* updates: centos.ustc.edu.cn

libstdc++-4.4.7-3.el6.i686 : GNU Standard C++ Library

Repo        : base

Matched from:

Other      : libstdc++.so.6

2、然后执行:

输入命令:# yum install libstdc++-4.4.7-3.el6.i686

搞定!

6.编译Hello World程序,测试交叉工具链

写下下面的Hello World程序,保存为hello.c

#include “stdio.h”

int main()

{

printf("Hello World!\n");

return 0;

}

执行下面的命令:

$ arm-linux-gcc hello.c -o hello

ls下

看到hello执行文件

$ file hello在hello的目录下

可以看到hello: ELF 32-bit LSB executable,ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped

这样说明可以在ARM上运行,此时不能在pc上运行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度linux deepin 12.12,Linux Deepin 12.12 Beta 发布

一、概述两个月前,我们发布了搭载独立开发的“深度桌面环境”的 Linux Deepin 12.12 Alpha 版本。现在,Linux Deepin 12.12 Beta 版本来了!Beta 版本集成了 Linux Deepin 两个多月以来的工作成果,带来了许多激动人心的新功能与特性…

linux c 编程手册,Linux C/C++编程手册查阅方法

Linux Programmers Manual & User Commandshttps://www.kernel.org/doc/man-pages/ 搜索框输入epoll调用搜索引擎查找在线搜索查看man手册(比如查epoll),可以直接收藏,方便下次点击搜索:http://global.bing.com/search?qsite:man7.org epollThe Linux Kernel APIhttps://w…

linux tcp连接计算机,计算机基础知识——linux socket套接字tcp连接分析

2016.7.4今天晚上对项目顶层文件(daemon)进行了分析,对其中的TCP连接进行具体的代码级分析。1、需求分析首先得知道我们这里为什么要用TCP连接,我们的整个测试系统是由上位机作为客户端,发送测试文件,测试命令给我们测试程序上&am…

单片机c语言数值转换为字符,将C语言宏定义数值转换成字符串!

hibernate常用API详解根据个人使用Hibernate的经验,介绍一下Hibernate的多种不同的查询和CUD操作,这些东西在日常开发中非常常用,希望对大家有所帮助. 以下示例均以两张表为例:member和userinfo ...Dom4J解析xml文件动态转换为List<Bean>或者M…

定时器驱动数码管c语言程序,74hc595驱动数码管时间程序

74hc595驱动数码管时间程序这里是电路图:下面是51单片机驱动74hc595芯片的程序:#include //包含51单片机的头文件#include#define uint unsigned int#define uchar unsigned char//sbit sin_595 P1^0;//sbit rclk_595 P…

石油大学c语言考试答案,中石油华东2012春《C语言》在线答案

);! X" l4 d0 m5 T0 A 满分:2 分* }4 x X$ a& t, l% i3. 当对两个字符串进行比较时,应该使用的函数是A. strcat, y, Z- S p t! k! GB. strcmp2 } R% s8 P* Z/ yC. strcpy, i$ q. b5 P8 m j v1 k3 H2 W3 mD. strlen* I B S…

汇编与c语言互调实验报告,C语言和汇编语言的互调.doc

C语言和汇编语言的互调实 验 报 告课程名称: C语言和汇编语言的互调姓名学号组员实验名称C语言和汇编语言的互调实验内容:(实验原理、实验步骤、数据处理、误差分析、程序算法、系统结构等)实验原理C语言参数传递原则1、函数的返回值通过AX寄存器&#x…

c语言malloc用法 数组,详解C语言用malloc函数申请二维动态数组的实例

详解C语言用malloc函数申请二维动态数组的实例C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单。Sample one#include int main(){char * p(char *)malloc(sizeof(char)*5);//申请包含5个字符型的数组free(p);return 0;}是否申请二维动…

c语言取子程序地址,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*************************************************************************************** 外部中断0实验 *实现现象:下载程序后按下K3按键可以对D1小灯状态取反。注意事项:无。***********************…

c语言中怎么暂停一个一个游戏,求助:最近在linux下用c语言写了一个贪吃蛇程序,有几个问题,第一:贪吃蛇怎么实现暂停,第二:有时候同时输入上下左右中的两个键就会直接游戏结束...

求助:最近在linux下用c语言写了一个贪吃蛇程序,有几个问题,第一:贪吃蛇怎么实现暂停,第二:有时候同时输入上下左右中的两个键就会直接游戏结束/*以下是主要的逻辑代码,还有些.c和.h就没发了*/#i…

android如何调用接口方法,在Android中访问WebService接口的方法

需要引入ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar代码如下://WebService的命名空间static final String namespace "http://impl.service.suncreate.com";//服务器发布的urlstatic final String url http://10.100.3.41/axis2/services/UploadSer…

android view显示隐藏动画效果,Android 根据手势顶部View自动展示与隐藏效果

首先来看一下效果:大体思路如下:总体布局用了一个自定义的ViewGroup,里面包了两个View(top View,bottomView)我在bottomView里放了ViewPager,里面又有Fragment,Fragment里放的是ListView原理:Vi…

android点击地址调用地图,Android 实现点击按钮 调用手机外部地图导航

//弹出Dialog 选择外部地图private void setMap(){final Dialog dianew AlertDialog.Builder(mContext).create();View viewLayoutInflater.from(mContext).inflate(R.layout.dialog_map, null);dia.show();dia.getWindow().setContentView(view);TextView tv_baidu(TextView) …

android webservices 返回多行多列数据,NoahWeb实现表格多行多列

用NoahWeb的表现层指令可以在动态生成的页面中非常容易的实现多行多列的表格。在正式学习以前我们需要先来了解一下怎么用NoahWeb的表现层来做动态内容显示。在NoahWeb设计器中新建或打开一项目以后,在Macromedia Dreamweaver MX 2004中新建了一个“空页面”&#x…

android打印参数类型,__android_log_vprint可变参数打印日志

想到把JNI下的__android_log_print();函数进行封装,可是这个函数的参数是可变长参数;对于可以变长的参数,我们可以使用以下函数msdn提供的变量和函数进行实现封装可变参数传递的函数;type va_arg( va_list arg_ptr, ty…

android百度地图画圆,android百度地图半径画圆

Java代码import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.graphics.Path;import android.graphics.Point;import android.os.Bundle;import…

android程序 美食分享,下厨房Android产品分析

下厨房产品宣传图一、产品概况1、产品简介下厨房菜谱是一款简单实用的美食应用,可以帮助用户寻找想吃的美食,搜索精美食谱,使用购买清单选购食材,与朋友分享自己制作的美食。2、主要竞品美食杰、豆果美食、好豆菜谱、香哈菜谱。二…

android短信的uri,Android系统Intent中的Uri使用

Intent应该算是Android中特有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料。都指定好后,只要调用startActivity(),Android系统会自动寻找最符合你指定要求的应用程序&…

简单html5作品,最新HTML5简单入门系列精选

随着HTML5的流行,LZ作为一个web开发者,也决定学习一下前端前沿技术。HTML5 是下一代的HTML,它将成为 HTML、XHTML 以及 HTML DOM 的新标准。它是W3C( World Wide Web Consortium)和WHATWG(Web Hypertext Application Technology Working Grou…

js在ie追加html,如何使用JavaScript将属性添加/更新到HTML元素?

如果你想要完全兼容,看起来容易的事实上是很棘手的。var e document.createElement(div);假设您要添加“div1”的ID。e[id] div1;e.id div1;e.attributes[id] div1;e.createAttribute(id,div1)这些都将工作,除了IE 5.5中的最后一个(这是古代历史&…