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

2023-05-16

(注:首先需要明确需要安装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上运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS安装arm-linux-gcc交叉编译器 的相关文章

  • 在 Linux 中禁用历史记录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 要在 Linux 环境中禁用历史记录 我执行了以下命令 export HISTFILESIZE 0 export HISTSIZE 0 u
  • 嵌入式Linux poll()不断返回

    我有一个特别的问题 当我知道没有什么可读时 民意调查不断返回 因此设置如下 我有 2 个文件描述符 它们构成fd设置民意调查监视 一种用于引脚从高到低的变化 GPIO 另一个用于代理输入 代理输入出现问题 处理的顺序是 启动main函数 然
  • xsel -o 对于 OS X 等效项

    是否有一个等效的解决方案可以在 OS X 中抓取选定的文本 就像适用于 Linux 的 xsel o 一样 只需要当前的选择 这样我就可以在 shell 脚本中使用文本 干杯 埃里克 你也许可以安装xsel在 MacOS 上 更新 根据 A
  • 编译器如何实现位域运算?

    当询问如何做的问题时包裹 N 位有符号减法 https stackoverflow com questions 8309538 integer subtraction with wrap around for n bits我得到了以下答案
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 当安装的 RPM 取代了另一个 RPM 时如何检测升级

    RPM scriptlet 被传入 1 https fedoraproject org wiki Packaging Scriptlets rd Packaging ScriptletSnippets Syntax 操作完成后 系统中将保留
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • 什么是遗留中断?

    我正在开发一个项目 试图弄清楚 ARM 架构的全局中断控制器中如何处理中断 我正在使用 pl390 中断控制器 我看到有一条线被称为传统中断 它绕过了分配器逻辑 假设有 2 个中断可以被编程为传统中断 任何人都可以帮助解释一下什么是遗留中断
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 有没有办法在输出二进制文件中存储 clang 编译时标志?

    使用 clang 时 有没有办法在输出二进制文件中存储编译时标志 例如运行后 clang O3 c main c 所结果的main o文件应该包含在某处 O3 gcc has frecord gcc switches https stack
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两

随机推荐

  • INSTALL_FAILED_TEST_ONLY

    查看博客 http www enjoytoday cn posts 159 Android studio安装apk无法安装 xff0c 报错误 xff0c 网上搜索可以看到都说是 调用者不被允许测试的测试程序 xff0c 但具体这句话具体是
  • 好看的网站

    1 红色主题网站 雕塑类 http www ibaolan com 2 40个布局排版好看的网页设计作品 https www shejidaren com 40 creative web design layout html 3 做了那么久
  • Part 2:Cocos2d-x开发基础-Cocos简介与环境搭建-关东升-专题视频课程

    立即学习 https edu csdn net course play 6735 133126 是独立按键还是矩阵按键
  • 51单片机 串口12864显示驱动

    include lt reg52 h gt define uchar unsigned char define uint unsigned int sbit CS 61 P2 5 片选信号 xff08 RS xff09 sbit SID 6
  • Nginx https 配置步骤,免费证书申请

    第一步 xff1a http aq chinaz com SSL 需要先注册登录站长工具 第二步 xff1a 填写域名信息 xff0c xff08 设置的密钥密码要记住 xff0c 在第五步时需要用到 xff09 第三步 xff1a 选择手
  • C/C++分割字符串: strtok函数

    C语言如何实现将字符串ABCD efgh i1234 David Julie Susan中 和 分隔开的几个字串ABCD efgh i1234 David Julie Susan取出来 xff1f 有个函数叫 strtok span cla
  • 浅谈用Google Scholar查找并获取外文文献的技巧和方法

    一 Google Scholar是什么 Google Scholar是Google于2004年底推出的专门面向学术资源的免费搜索工具 xff0c 能够帮助用户查找包括期刊论文 学位论文 书籍 预印本 文摘和技术报告在内的学术文献 xff0c
  • 常见的字符串处理函数strstr,strlen,strtok

    字符串处理 strstrstrlenstrtokstrchrstrcpystrcmpstrcatsprintfbzeromemsetmemcpymemcmperrno strstr span class token function str
  • Vscode+MinGW配置C++开发环境(解决版本过老和在线下载极慢问题)

    文章目录 准备电脑MinGW的编译器环境安装注意 配置Path环境路径VScode 安装C C 43 43 拓展配置运行 xff08 多数配置直接被VSCODE自动生成 xff09 准备电脑MinGW的编译器环境 为什么选择MinGW xf
  • Python——alembic数据库ORM模型的迁移与映射

    Python alembic数据库ORM模型的迁移与映射 alembic 作用 xff1a 方便数据库与ORM模型的迁移与映射 alembic 安装 xff1a pip install alembic alembic 用法 xff1a 1
  • 解决VNC远程连接树莓派,窗口显示不全的问题,亲测可行!!

    哇 xff0c 就在刚刚才百度到解决VNC远程连接树莓派 xff0c 窗口显示不全的问题 xff0c 昨晚上查了一晚上都没搞定 xff0c xff0c xff0c 首先说下问题吧 xff0c 就是用VNC远程连接树莓派后 xff0c 会出现
  • Kotlin Parameter specified as non-null is null

    报错信息如下 span class hljs label java lang IllegalArgumentException span Parameter specified as non null is null method kotl
  • 如何获取维普免费账号--应对大家工作后在校外下载维普万方等全文

    马上就要工作了 xff0c 觉得学校里面图书馆资料很多 xff0c 并且很有用 xff0c 都可以在CNKI 万方维普等中文数据库 xff0c 和SD EBSCO SpringerLink等西文数据库中下载全文 xff0c 但是仅仅限于校内
  • Ubuntu下搭建samba服务

    Samba服务器和NFS差不多 xff0c Samba是在Windows操作系统下访问Linux主机 xff0c NFS可以让Linux客户端访问NFS服务器 xff0c NFS服务器可以使用Windows搭建也可以使用Linux搭建 xf
  • VsCode打不开终端

    VsCode打不开终端 问题现象解决办法 问题现象 解决办法 打开设置 输入 integrated 并打开 settin json 插入对于终端路径设置 代码如下 xff1a 34 terminal integrated shell win
  • VMware虚拟机中的Ubuntu图形界面蓝屏问题

    VMware虚拟机中的Ubuntu图形界面蓝屏问题 因为某次暴力关机后 xff0c 进入Ubuntu时发现蓝屏 xff0c 界面显示不正常 xff0c 但Ctrl 43 alt 43 F4后可以进入命令行 xff0c 说明系统正常只是图形界
  • GD32F205在IAR上移植FreeRTOS

    目录 简述 xff1a 第一步 xff1a 准备最简工程与系统第二步 xff1a 拷贝源码第三步 xff1a 编译器IAR配置第四步 xff1a 工程代码修改第五步 xff1a 编译工程 简述 xff1a 1 主芯片 xff1a GD32F
  • vscode之C/C++代码自动补全

    目录 准备 xff1a 步骤 xff1a 安装插件重启加载更改配置选项找到 设置 打开json配置添加配置json保存并重新打开vscode即可自动补全 准备 xff1a IDE xff1a vscode 安装就不展开啦 步骤 xff1a
  • git生成公钥

    平台 xff1a Windows 打开git bash 随便在一个目录下右键 xff0c 选择 Git Bash Here 生成公钥命令 ssh keygen t rsa C your email 64 example com 备注 xff
  • CentOS安装arm-linux-gcc交叉编译器

    xff08 注 xff1a 首先需要明确需要安装centos系统的位数 xff0c 即是32位的还是64位的 xff09 1 下载并解压文件 xff1a 下载arm linux gcc 4 4 3 tgz到任意的目录下 xff0c 进入这个