系列文章目录

  1. Linux与C语言交互
  2. Linux的基本指令

文章目录

  • 系列文章目录
  • 前言
    • 环境
    • 一、引入编译工具链(arm-linux-gcc-4.4.3.tar.gz)
      • 1.打开虚拟机设置
      • 2. 选择路径
      • 3. 查看是否共享成功
    • 二、复制文件
      • 1. 进入Desktop/arm
      • 2.创建arm文件夹
      • 3.复制文件
      • 4. 解压文件
    • 三、添加环境变量
      • 1. 用gedit打开文件bash.bashrc
      • 2.添加
      • 3. 保存退出
    • 四、注册环境变量
    • 五、检测是否成功
    • 六、测试交叉编译
      • 1.编写hello.c程序文件:
      • 2. 交叉编译:
    • 七、查看文件信息

前言

今天新学习了Linux之交叉编译器的构建,来记录一下,也算是加强记忆,以下是
实验内容

1、利用第三方编译好的交叉编译工具链(arm-linux-gcc-4.4.3.tar.gz)配置Linux的交叉编译环境。
2、测试交叉编译工具链
将前面的程序源码先用gcc编译生成可执行程序并运行,然后用交叉编译器编译生成新的执行程序,通过file命令查看两个执行文件
交叉编译: arm-linux-gcc 源文件.c -o 执行文件


环境

VMWARE虚拟机+Linux操作系统

一、引入编译工具链(arm-linux-gcc-4.4.3.tar.gz)

1.打开虚拟机设置

  • 打开Linux后,点击工具栏中的虚拟机

2. 选择路径

单击选择选项中的共享文件夹后找到共享的arm-linux-gcc-4.4.3.tar.gz路径,俺放在桌面那里了,所以之间选择桌面的路径,点击确认

3. 查看是否共享成功

root@ubuntu:/usr/local/arm# cd /mnt/hgfs/Desktop
root@ubuntu:/mnt/hgfs/Desktop# ls
  • 桌面上的文件都共享过Linux中了

  • 找到我们要的交叉编译器arm-linux-gcc-4.4.3.tar.gz,共享成功

二、复制文件

1. 进入Desktop/arm

root@ubuntu:/mnt/hgfs# cd
root@ubuntu:~# cd /Desktop/arm
bash: cd: /Desktop/arm: No such file or directory
root@ubuntu:~# cd Desktop
root@ubuntu:~/Desktop# cd arm
root@ubuntu:~/Desktop/arm# ls
root@ubuntu:~/Desktop/arm#

2.创建arm文件夹

root@ubuntu:~/Desktop/arm# mkdir /usr/local/arm
mkdir: cannot create directory `/usr/local/arm': File exists
root@ubuntu:~/Desktop/arm# cd /usr/local/arm
root@ubuntu:/usr/local/arm#

3.复制文件

root@ubuntu:/usr/local/arm# cp arm-linux-gcc-4.4.3.tar.gz /usr/local/arm
root@ubuntu:/usr/local/arm# ls

4. 解压文件

root@ubuntu:/usr/local/arm# tar -xzvf arm-linux-gcc-4.4.3.tar.gz


显示出opt即解压成功

`

三、添加环境变量

1. 用gedit打开文件bash.bashrc

root@ubuntu:/usr/local/arm# gedit /etc/bash.bashrc

2.添加

在最后一行添加“export PATH=/usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH”,保存文件

export PATH=/usr/local/arm/opt/FriendlyARM/toolschain/4.4.3/bin:$PATH

3. 保存退出

四、注册环境变量

运行/etc/bash.bashrc使配置生效

root@ubuntu:/usr/local/arm# . /etc/bash.bashrc
root@ubuntu:/usr/local/arm#

五、检测是否成功

查看版本号,若有则成功

root@ubuntu:/usr/local/arm# arm-linux-gcc -v

六、测试交叉编译

1.编写hello.c程序文件:

root@ubuntu:/usr/local/arm# gedit hello.c

#include <stdio.h>
int main(){printf("hello world\n");return 0;
}

2. 交叉编译:

root@ubuntu:/usr/local/arm# arm-linux-gcc hello.c -o hello
root@ubuntu:/usr/local/arm# ls


出现hello则编译成功

七、查看文件信息

root@ubuntu:/usr/local/arm# file hello


大功告成!!!

Linux之交叉编译器的构建相关推荐

  1. linux编译freebsd,freebsd下作x86/arm linux的交叉编译器

    freebsd下作x86/arm linux的交叉编译器 2009-05-13 01:40:08来源:未知 阅读 () 以纯粹的源码编译交叉编译器,还是头一遭.以往都是利用目标主机上的头文件和库文件作 ...

  2. linux搭建交叉编译器,手把手教你一步一步搭建mips-linux-gcc-4.4.0交叉编译工具

    一.准备工作: 工作环境:宿主机:ubuntu10.04 linux-2.6.32-24-generic i686 gcc-4.4.3 目标机:mips32 软件包版本:binutils-2.19.1 ...

  3. 查看linux 下交叉编译器安装目录,Linux下安装交叉编译工具链

    安装目的 gcc经过编译后生成的可执行文件(最后也就是一大堆机器码)是在linux操作系统之上运行的,也就是说经过gcc编译器最后生成的一大堆机器码只有Linux操作系统认识,但是我们做ARM裸机实验 ...

  4. win10 Linux子系统 交叉编译器注意事项

    如果你的机器是32位的 ,就不需要安装32位的运行库了 如果你的机器是64位的 ,就需要安装32位的运行库 Ubuntu20.04 64位机器安装32位运行库 sudo apt install lib ...

  5. Linux账户标识R=400是什么意思_带你阅读linux内核源码:通俗讲解编译器、交叉编译器和大小端...

    欢迎关注"技术简说",持续分享linux内核和驱动开发干货. 本文内容包括: 编译器和交叉编译器的介绍 交叉编译器的命名规则 如何交叉编译C代码 大端.小端的通俗讲解 如何判断你的 ...

  6. 交叉编译器arm-linux-gcc,aarch64-himix200-linux-gcc命令找不到 not found ,所有原因全方位解析

    1.配置环境变量: 在/etc/profile或者~/.bashrc文件中添加: export PATH="/XXX/aarch64-himix200-linux/bin:$PATH&quo ...

  7. vxworks gcc linux,针对VxWorks的GCC交叉编译器无法编译C++

    我试图移植Linux库以在VxWorks上运行.我已经成功构建了binutils和gcc,目标为i486-wrs-vxworks,我可以成功构建一个简单的C程序.但是,当我尝试编译C++时,事情就会中 ...

  8. 在linux运行math_neon库,linux - 仅使用带交叉编译器的本地库 - 堆栈内存溢出

    我正在尝试在linux上使用交叉编译器构建一个应用程序. 应用程序基于OpenEmbedded项目. 编译器和所有交叉编译的库都位于build文件夹中. 但是对于一个包构建脚本试图使用我的linux环 ...

  9. linux下mips裸机编译,裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么-因为它不编译带有指针或mallocs的程序-或任何需要比底层硬件更多的东西-.还有1如何找到这些局限性.. 我还想问一下-我为目标mips构建了交叉编译器..我需要使用 ...

  10. 【Linux】嵌入式Linux系统的移植(上篇:交叉编译器、连接方式)

    嵌入式Linux系统移植 嵌入式Linux系统移植是进行Linux驱动开发的基础,如果连Linux系统移植都完成不了,那就更不用说驱动开发了.因此,Linux系统移植至关重要. 嵌入式Linux系统的 ...

最新文章

  1. 基于 OpenCV 和 OpenPose 的棒球挥杆人体姿势估计
  2. python中的散点图代码-绘制python中的线和散点图
  3. linux:用户和组
  4. python制作自动回复脚本_python itchat实现微信自动回复的示例代码
  5. 2021奢侈品营销启示录
  6. python编程课第七课_Python 第7课 if的介绍和使用
  7. QCC512x QCC302x Earbud 工程增加三击事件
  8. VOC2007/2012数据集解析
  9. Hikaricp连接池问题
  10. jenkins下载插件下载不了,解决办法
  11. RFID和NFC的区别
  12. 分享一个jQuery的自动客户端本地保存插件Sisyphus.js - 帮助你自动保存用户输入内容...
  13. studio 不能输入中文
  14. 【Charles基础】Charles抓取微信小程序乱码,抓取指定的请求
  15. CentOS 5设置千兆网卡
  16. Android4.1.0实战教程---自动阅读小说
  17. 【问题】Ucinet密度分析结果一直是1.000
  18. 抽取JS语法树的基本模块
  19. 2016校招薪资汇总
  20. G120变频器本地_远程切换(CDS切换)的具体方法和步骤

热门文章

  1. Xmodem Ymodem Zmodem 协议
  2. java名字自动生成_[java]自动生成指定长度的英文名字
  3. 马来西亚PHP项目_PHP大马的简单解密
  4. PHP文件运行步骤及数据库的连接
  5. Iass、Pass、Sass三种云服务有什么区别?
  6. c# rar解压大小_C#中使用WinRAR实现加密压缩及解压缩文件
  7. java解析md文件_md格式详解
  8. 10-4 linux可视化界面卡住问题等
  9. 高通9008刷机大法,避坑指南,救砖前提
  10. 使用WinRAR 进行解压war文件。