Linux之交叉编译器的构建
系列文章目录
- Linux与C语言交互
- 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之交叉编译器的构建相关推荐
- linux编译freebsd,freebsd下作x86/arm linux的交叉编译器
freebsd下作x86/arm linux的交叉编译器 2009-05-13 01:40:08来源:未知 阅读 () 以纯粹的源码编译交叉编译器,还是头一遭.以往都是利用目标主机上的头文件和库文件作 ...
- 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 ...
- 查看linux 下交叉编译器安装目录,Linux下安装交叉编译工具链
安装目的 gcc经过编译后生成的可执行文件(最后也就是一大堆机器码)是在linux操作系统之上运行的,也就是说经过gcc编译器最后生成的一大堆机器码只有Linux操作系统认识,但是我们做ARM裸机实验 ...
- win10 Linux子系统 交叉编译器注意事项
如果你的机器是32位的 ,就不需要安装32位的运行库了 如果你的机器是64位的 ,就需要安装32位的运行库 Ubuntu20.04 64位机器安装32位运行库 sudo apt install lib ...
- Linux账户标识R=400是什么意思_带你阅读linux内核源码:通俗讲解编译器、交叉编译器和大小端...
欢迎关注"技术简说",持续分享linux内核和驱动开发干货. 本文内容包括: 编译器和交叉编译器的介绍 交叉编译器的命名规则 如何交叉编译C代码 大端.小端的通俗讲解 如何判断你的 ...
- 交叉编译器arm-linux-gcc,aarch64-himix200-linux-gcc命令找不到 not found ,所有原因全方位解析
1.配置环境变量: 在/etc/profile或者~/.bashrc文件中添加: export PATH="/XXX/aarch64-himix200-linux/bin:$PATH&quo ...
- vxworks gcc linux,针对VxWorks的GCC交叉编译器无法编译C++
我试图移植Linux库以在VxWorks上运行.我已经成功构建了binutils和gcc,目标为i486-wrs-vxworks,我可以成功构建一个简单的C程序.但是,当我尝试编译C++时,事情就会中 ...
- 在linux运行math_neon库,linux - 仅使用带交叉编译器的本地库 - 堆栈内存溢出
我正在尝试在linux上使用交叉编译器构建一个应用程序. 应用程序基于OpenEmbedded项目. 编译器和所有交叉编译的库都位于build文件夹中. 但是对于一个包构建脚本试图使用我的linux环 ...
- linux下mips裸机编译,裸机交叉编译器输入
裸机交叉编译器的输入限制是什么-因为它不编译带有指针或mallocs的程序-或任何需要比底层硬件更多的东西-.还有1如何找到这些局限性.. 我还想问一下-我为目标mips构建了交叉编译器..我需要使用 ...
- 【Linux】嵌入式Linux系统的移植(上篇:交叉编译器、连接方式)
嵌入式Linux系统移植 嵌入式Linux系统移植是进行Linux驱动开发的基础,如果连Linux系统移植都完成不了,那就更不用说驱动开发了.因此,Linux系统移植至关重要. 嵌入式Linux系统的 ...
最新文章
- 基于 OpenCV 和 OpenPose 的棒球挥杆人体姿势估计
- python中的散点图代码-绘制python中的线和散点图
- linux:用户和组
- python制作自动回复脚本_python itchat实现微信自动回复的示例代码
- 2021奢侈品营销启示录
- python编程课第七课_Python 第7课 if的介绍和使用
- QCC512x QCC302x Earbud 工程增加三击事件
- VOC2007/2012数据集解析
- Hikaricp连接池问题
- jenkins下载插件下载不了,解决办法
- RFID和NFC的区别
- 分享一个jQuery的自动客户端本地保存插件Sisyphus.js - 帮助你自动保存用户输入内容...
- studio 不能输入中文
- 【Charles基础】Charles抓取微信小程序乱码,抓取指定的请求
- CentOS 5设置千兆网卡
- Android4.1.0实战教程---自动阅读小说
- 【问题】Ucinet密度分析结果一直是1.000
- 抽取JS语法树的基本模块
- 2016校招薪资汇总
- G120变频器本地_远程切换(CDS切换)的具体方法和步骤