记ubuntu的uClinux交叉编译环境的搭建以及操作系统的引导
- 格式:pdf
- 大小:461.52 KB
- 文档页数:14
linux交叉编译环境搭建步骤在Linux系统下搭建交叉编译环境主要涉及以下几个步骤:2. 配置环境变量:将交叉编译工具链的路径添加到系统的环境变量中以便于使用。
可以在用户的`.bashrc`或`.bash_profile`文件中添加如下行:```bashexport PATH=<path_to_toolchain>/bin:$PATH```其中`<path_to_toolchain>`是指交叉编译工具链所在的路径。
3.设置目标平台的系统根目录:交叉编译时需要使用目标平台的系统库和头文件,因此需要设置目标平台的系统根目录。
可以通过以下方式设置:```bashexport SYSROOT=<path_to_sysroot>```其中`<path_to_sysroot>`是指目标平台的系统根目录。
4.编写一个简单的交叉编译项目:为了验证交叉编译环境是否搭建成功,可以编写一个简单的交叉编译项目进行测试。
例如,编写一个简单的C程序,将其交叉编译为ARM平台下的可执行文件。
```c#include <stdio.h>int maiprintf("Hello, world!\n");return 0;```将上述代码保存为`hello.c`文件。
然后,使用以下命令进行交叉编译:```basharm-linux-gnueabi-gcc -o hello hello.c```编译完成后,会生成一个名为`hello`的可执行文件。
在ARM平台上执行该可执行文件,将输出`Hello, world!`。
以上就是在Linux系统下搭建交叉编译环境的基本步骤。
根据具体的需求,可能还需要进行其他的配置和设置。
ubuntu10.04下建立交叉编译工具链(支持软浮点)全过程参考了网上的不少的资料,花了五个小时终于完成了,记录下全过程供大家分享。
用到的源码包如下,建议新手全部放在/home/usr/downloads/ 目录下。
以下操作在用户权限下进行。
=======================================================================arm-linux-gcc-3.4.1.tar.gzglibc-2.3.3.tar.gzlinux-2.6.8.tar.gzcrosstool-0.43.tar.gzbinutils-2.15.tar.gzglibc-linuxthreads-2.3.3.tar.gzbinutils-2.18.tar.gz --安装用编译一次至少要花半个小时,如果因为依赖软件没有安装中途会报错退出,只有从头再来,那样很浪费时间的。
sudo apt-get install bison flex build-essential patch libncurses5-dev由于ubuntu10.04自带的ld ,as版本太高的原因,需要安装binutils的2.18版本,然后替换系统中的2.20版本。
方法如下:$cd downloads$tar xzvf binutils-2.18.tar.gz$cd binutils-2.18$./configure --prefix=/tmp/binutils --disable-nls (-prefix后面的是生成可执行文件存放的位置可以自己定义)$make all$make install编译成功后在/tmp/binutils/bin/中就生成了ld和as程序的可执行文件重新链接/usr/bin/ld 和/usr/bin/as文件$sudo rm /usr/bin/ld /usr/bin/as //删除2.20的ld,as$sudo ln –s /tmp/binutils/bin/ld /usr/bin/$sudo ln –s /tmp/binutils/bin/as /usr/bin/然后可运行ld –v 和as –v 查看版本是否为2.18。
ubuntu下交叉编译环境构建(arm-linux-gcc-4.3.2 )及第一个linux下的c程序1.解压arm-linux-gcc-4.3.2.tgz#tar -jxvf arm-linux-gcc-4.3.2.tgz解压过程需要一段时间,解压后的文件形成了usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下# cd usr/local/#cp -rv arm /usr/local/现在交叉编译程序集都在/usr/local/arm/4.3.2/bin下面了2. 修改环境变量,把交叉编译器的路径加入到PATH。
修改/etc/bash.bashrc文件#vim /etc/bash.bashrc在最后加上:export PATH=$PATH:/usr/local/arm/4.3.2/binexport PATH(如果不能编辑,先修改相关文件的权限使用chmod命令。
)3.立即使新的环境变量生效,不用重启电脑:对应方法一:#source /root/.bashrc对应方法二:# source /etc/profile4.检查是否将路径加入到PATH:# echo $PATH显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。
至此,叉编译环境安装完成。
5. 测试是否安装成功:首先查看bin目录下可执行文件,或许不是arm-linux-gcc# /arm/4.3.2/bin/arm-none-linux-gnueabi-gcc-4.3.2 –v上面的命令会显示arm-linux-gcc信息和版本,gcc version 4.3.26 .编译Hello World程序,测试交叉工具链#include <stdio.h>int main(){printf("Hello World!\n");return 0;}执行下面的命令:# arm-linux-gcc -o hello hello.c源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。
1. 安装标准的C开发环境,由于Ubuntu 9.04 Linux安装默认是不安装的,所以需要先安装一下(如果已经安装好的话,就可以免去这一步了):$ sudo apt-get install gcc g++ libgcc1 libg++ make gdb如果上面这个安装不行,可以试试$ sudo apt-get install build-essential2. 下载arm-linux-gcc-4.3.2.tgz到任意的目录下,进入这个文件夹$ sudo tar xvzf arm-linux-gcc-4.3.2.tgz –C /注意:C 后面有个空格,并且 C 是大写的,它是英文单词“Change”的第一个字母,在此是改变目录的意思。
执行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.3.2 目录。
3. 修改环境变量,把交叉编译器的路径加入到PATH。
方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用)$sudo gedit /etc/bash.bashrc在最后加上export PATH=$PATH:/usr/local/arm/4.3.2/bin方法二:修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用):$sudo gedit /etc/profile增加路径设置,在末尾添加如下,保存/etc/profile文件:export PATH=$PATH:/usr/local/arm/4.3.2/bin方法三:修改/etc/environment文件$sudo 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.3.2/bin"保存退出即可4. 立即使新的环境变量生效,不用重启电脑:对应方法一:$ source /root/.bashrc对应方法二:$ source /etc/profile方法三立即生效5. 检查是否将路径加入到PATH: $ echo $PATH显示内容/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /games:/usr/local/arm/4.3.2/bin 说明已经将交叉编译器的路径加入PATH。
Ubuntu18.04安装arm-linux-gcc交叉编译器的两种⽅法(附下载地址)⽅法⼀: 我们都知道Ubuntu有⼀个专门⽤来安装软件的⼯具apt,我们可以⽤它来全⾃动安装arm-linux-gcc。
此⽅法安装的是最新版的,但是此⽅法需要FQ,否则99%会失败,这就是为什么⽹上⼤多都⽤压缩包安装的原因: ⾸先Ctrl+Alt+T弹出终端,使⽤如下命令进⾏arm-linux-gcc的安装:sudo apt-get install gcc-arm-linux-gnueabihf 使⽤如下命令进⾏arm-linux-g++的安装:sudo apt-get install g++-arm-linux-gnueabihf 如果要卸载时使⽤如下命令进⾏移除,arm-linux-gcc的卸载:sudo apt-get remove gcc-arm-linux-gnueabihf arm-linux-g++的卸载:sudo apt-get remove g++-arm-linux-gnueabihfsudo tar -xjvf /tmp/arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 3.解压完成后,再在(/usr/local)中创建⼀个新⽬录arm,即在Terminal中输⼊以下命令:sudo mkdir /usr/local/arm 4.创建arm⽬录成功后,还需要给它解放全部权限,即在Terminal中输⼊以下命令:sudo chmod 777 /usr/local/arm 5.在解压出来的⽬录中找到并把整个arm-linux-gcc-3.4.5-glibc-2.3.6⽬录复制到刚刚建好的arm⽬录中,命令如下:sudo cp -r gcc-3.4.5-glibc-2.3.6 /usr/local/arm 6.打开(/etc/profile)配置环境变量和库变量,⽬的是以后可以在任何位置使⽤该交叉编译器,命令如下:sudo vi /etc/profile 7.⽤vi或者vim打开后,在⽂件最后添加两⾏,并输⼊以下代码:第⼀⾏是添加执⾏程序的环境变量,第⼆⾏是库⽂件的路径export PATH=$PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/lib 8.使⽤source命令重新加载⽣效该配置⽂件source /etc/profile 9.检验是否安装成功,在 Terminal 输⼊以下命令输出版本信息:arm-linux-gcc -v 10.若有以下报错参考解决办法: 报错:bash: /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc-4.2.2: No such file or directory 解决sudo apt-get install libc6-i386 该库中包括ia32-libs, lib32z1, lib32ncurses5等等依赖。
linux学习之交叉编译环境⼀在Linux上配置交叉编译环境:1. 根据芯⽚型号确定芯⽚指令集架构,并根据该架构选择合适的交叉编译⼯具2. 将交叉编译⼯具解压,添加到环境变量。
3. 编译⽬标⽂件,并想法设法将⽬标⽂件整到开发板上,有以下⽅法:将⽬标⽂件先整到windows PC下,拷贝到U盘/SD卡然后再插⼊开发板;⽤⽀持SSH的⼯具如putty登陆板⼦linux服务器;⽤NFS实现。
⼆ Uboot:⽤来启动内核(CPU不能直接从块设备中执⾏代码): 执⾏uboot代码,在uboot中把块设备中的内核代码复制到某内存地址处,然后再执⾏这个地址,即可启动内核。
uboot代码(uboot 根⽬录的spl⽂件夹u-boot-spl.bin和uboot根⽬录下u-boot.bin)需要⽤make(makefile配置+“.config”(make menuconfig图形化配置⼯具的输出⽂件))出来。
然后分别烧录进板⼦。
三编译kernel,并将其烧写进板⼦,启动板⼦后linux的shell环境应该跑起来了。
注意烧录内核的位置和内核运⾏环境: ramdisk根⽂件系统,这个⽂件系统是存在RAM⾥的,所以你在⾥⾯写⼊东西,⼀断电就没有了。
NAND Yaffs2⽂件系统:断电后还是存在的,使⽤busybox⽤来⽣成linux⽂件系统的⼏个基本⽂件夹,然后通过打包⼯具mkyaffs2,它⽤来⽣成能直接烧录到板⼦⾥的镜像⽂件,以下都是要烧写的⽂件。
Image Name Image Type Image start offsetu-boot-spl.bin uboot0x200u-boot.bin data 0x100000env.txt env0x80000970uImage data0x200000rootfs_yaffs2.img data 0x2000000四:将⾃⼰编写的程序的可执⾏⽂件拷贝到/opt⽬录下,并拷贝所需的库⽂件到/lib下,即可通过命令⾏来运⾏⽂件了。
交叉编译环境的配置与使用交叉编译是指在一个不同的开发环境中编译程序,以在目标平台上运行。
目标平台可以是不同的硬件架构、操作系统或操作系统版本。
交叉编译可以有效地减少在目标平台上进行开发和测试的时间,尤其是在限制了资源的嵌入式系统中。
配置交叉编译环境的步骤主要包括以下几个方面:1. 选择交叉编译工具链:交叉编译工具链是包含了交叉编译器、交叉链接器和相关工具的集合。
根据目标平台的特点,可以选择使用已有的工具链,或者自己构建定制的交叉编译工具链。
常见的交叉编译工具链有Cygwin、GCC等。
3.配置交叉编译环境:在配置交叉编译环境之前,首先需要确定目标平台和目标操作系统的相关信息,例如:处理器架构、操作系统版本、库文件位置等。
然后设置环境变量,包括设置交叉编译工具链的路径、目标平台和操作系统的相关信息。
4. 编写和编译代码:在配置好交叉编译环境后,可以使用常规的编程工具,如IDE或命令行工具,编写程序代码。
在编译时,需要使用交叉编译工具链中的编译器和相关工具来进行编译。
例如,使用交叉编译工具链中的gcc来代替本机的gcc进行编译。
5.链接和生成目标文件:编译成功后,会生成目标文件,即在目标平台上可以运行的可执行文件或库文件。
在链接时,需要使用交叉链接器来链接目标文件和相关库文件。
6.在目标平台上运行:将生成的目标文件复制到目标平台上,并通过目标平台的方式运行。
例如,在嵌入式系统中,可以通过串口或其他方式加载程序并运行。
1.确定目标平台和操作系统的要求:在进行交叉编译之前,需要确保了解目标平台和操作系统的相关要求,例如处理器架构、操作系统版本、库文件位置等。
这些信息将有助于选择合适的交叉编译工具链和配置交叉编译环境。
2.编写适用于目标平台的代码:在进行交叉编译时,需要注意编写适用于目标平台的代码。
例如,需要避免使用与目标平台不兼容的库函数和系统调用,以及考虑目标平台的资源限制等。
3.调试和测试:由于交叉编译环境和目标平台的不同,可能会遇到一些问题,如编译错误、链接错误或运行错误等。
开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛。
安装步骤1、准备工具安装目录将压缩包arm-Linux-gcc-4.4.3.tar.gz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是/home/aldrich/arm,如下图,记住这个路径,等会还会用到。
1. .tar.gz 和.tgz2. 解压:tar zxvf FileName.tar.gz3. 压缩:tar zcvf FileName.tar.gz DirName2、安装软件使用tar命令:tar zxvf arm-linux-gcc-4.3.2.tgz将software文件夹下的arm-linux-gcc-4.3.2.tgz解压缩安装到当前目录。
通过下图可以看到解压成功了,并且解压后的文件存放在了1. /home/aldrich/arm/arm-linux-gcc-4.3.2文件夹下,如下图所示,这个存放路径可得记住,如下图3、配置系统环境变量配置环境前先坐下普及:Ubuntu不同目录下profile与bashrc的区别/etc/profile此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc/bash.bashrc为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
~/.bash_profile每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次,默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
~/.bash_logout当每次退出系统(退出bash shell)时,执行该文件。
linux 操作系统交叉编译环境的建立
基于linux 操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC 机所构成。
目标硬件开发板用于运行操作系统和系统应用软件,而
目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿
主PC 机来完成(所以称为交叉编译)。
双方之间一般通过串口,并口或以太网接口建立连接关系。
但在此我建议构建如下的交叉编译环境,适合个人或研发小组使用:单独
拿出一台PC 机(PII 以上即可,就用以前淘汰的旧机器就可以),在该PC 上安装桌面的Linux 操作系统(如Red Hat Linux 8.0 及以上),可以采用默认的安装选项(注意要包含ftp 服务),这台PC 作为Linux 服务器,除管理员以外,一般不直接让其他人去操作。
将该Linux 服务器接入局域网,并新建一些合法用户,以便其他的PC 机(在此我们将其称为工作站)的合法用户能访问到Linux 服务器。
而其他的PC 机(工作站)仍然使用Windows 操作系统,原来干啥继续干啥。
需要的软件工具包括:
1、ftp 客户端程序(如Cuteftp,可到网上下载)
2、Telnet 工具(如SecureCRT,可到网上下载)。