本人 最近在 构建这样一个工具链,现在对网上的各个 工具链存在疑问。
1、yocto是个什么东西,有什么用
2、crosstool是做什么的
3、buildroot呢,与yocto是并行的工具链吗
4、还有个qt是什么,据说qmake能自动生成 makefile,以前的工具能cover主这个功能吗
5、安装完以后还需要安装arm-linux-gcc工具链吗?
希望大神解答,可以追加分数
交åç¼è¯å·¥å ·é¾æ¯ä¸ä¸ªç±ç¼è¯å¨ãè¿æ¥å¨å解éå¨ç»æç综åå¼åç¯å¢ï¼äº¤åç¼è¯å·¥å ·é¾ä¸»è¦ç±binutilsãgccåglibc 3个é¨åç»æãææ¶åºäºåå° libc åºå¤§å°çèèï¼ä¹å¯ä»¥ç¨å«ç c åºæ¥ä»£æ¿ glibcï¼ä¾å¦ uClibcãdietlibc å newlibã交åç¼è¯å·¥å ·é¾ä¸»è¦å æ¬é对ç®æ ç³»ç»çç¼è¯å¨ gccãç®æ ç³»ç»çäºè¿å¶å·¥å ·binutilsãç®æ ç³»ç»çæ åcåºglibcåç®æ ç³»ç»ç Linuxå æ ¸å¤´æ件ã第ä¸ä¸ªæ¥éª¤å°±æ¯ç¡®å®ç®æ å¹³å°ãæ¯ä¸ªç®æ å¹³å°é½æä¸ä¸ªæç¡®çæ ¼å¼ï¼è¿äºä¿¡æ¯ç¨äºå¨æ建è¿ç¨ä¸è¯å«è¦ä½¿ç¨çä¸åå·¥å ·çæ£ç¡®çæ¬ãå æ¤ï¼å½å¨ä¸ä¸ªç¹å®ç®æ æºä¸è¿è¡GCCæ¶ï¼GCC便å¨ç®å½è·¯å¾ä¸æ¥æ¾å å«è¯¥ç®æ è§èçåºç¨ç¨åºè·¯å¾ãGNUçç®æ è§èæ ¼å¼ä¸ºCPU-PLATFORM-OSãä¾å¦ï¼å»ºç«åºäºARMå¹³å°ç交åå·¥å ·é¾ï¼ç®æ å¹³å°å为arm-linux-gnuã
åæ¥ç¼è¯åå®è£ 交åç¼è¯å·¥å ·é¾æéè¦çåºåæºä»£ç ï¼æç»çæ交åç¼è¯å·¥å ·é¾ã
éè¿Crosstoolèæ¬å·¥å ·æ¥å®ç°ä¸æ¬¡ç¼è¯çæ交åç¼è¯å·¥å ·é¾ã
ç´æ¥éè¿ç½ä¸ï¼ftp.arm.kernel.org.ukï¼ä¸è½½å·²ç»å¶ä½å¥½ç交åç¼è¯å·¥å ·é¾ã
æ¹æ³1ç¸å¯¹æ¯è¾å°é¾ï¼éåæ³æ·±å ¥å¦ä¹ æ建交åå·¥å ·é¾ç读è ãå¦æåªæ¯æ³ä½¿ç¨äº¤åå·¥å ·é¾ï¼å»ºè®®ä½¿ç¨æ¹æ³2ææ¹æ³3æ建交åå·¥å ·é¾ãæ¹æ³3çä¼ç¹ä¸ç¨å¤è¯´ï¼å½ç¶æ¯ç®åçäºï¼ä½ä¸æ¤åæ¶è¯¥æ¹æ³æä¸å®çå¼ç«¯å°±æ¯å±éæ§å¤ªå¤§ï¼å 为æ¯ç«æ¯å«äººæ建好çï¼ä¹å°±æ¯åºå®ç没æçµæ´»æ§ï¼æ以æ建æç¨çåºä»¥åç¼è¯å¨ççæ¬ä¹è®¸å¹¶ä¸éåä½ è¦ç¼è¯çç¨åºï¼åæ¶ä¹è®¸ä¼å¨ä½¿ç¨æ¶åºç°è®¸å¤è«åçé误ï¼å»ºè®®ä½ æ ç¨æ¤æ¹æ³ã
æ¹æ³1ï¼åæ¥æ建交åç¼è¯å·¥å ·é¾
ä¸è½½æéçæºä»£ç å
建ç«å·¥ä½ç®å½
建ç«ç¯å¢åé
ç¼è¯ãå®è£ Binutils
è·åå æ ¸å¤´æ件
ç¼è¯gccçè¾ å©ç¼è¯å¨
ç¼è¯çæglibcåº
ç¼è¯çæå®æ´çgcc
ç±äºå¨é®çä¸çç¯å¹ ï¼æä¸è½ç»è¿°å ·ä½çæ¥éª¤ï¼å ´è¶£çåå¦è¯·èªè¡é 读å¼æºå ±ååè®®çãLinux from scratchãï¼ç½åæ¯ï¼linuxfromscratch dot org
ã
Crosstoolæ¯ä¸ç»èæ¬å·¥å ·éï¼å¯æ建åæµè¯ä¸åçæ¬çgccåglibcï¼ç¨äºé£äºæ¯æglibcçä½ç³»ç»æãå®ä¹æ¯ä¸ä¸ªå¼æºé¡¹ç®ï¼ä¸è½½å°åæ¯kegel dot com/crosstoolãç¨Crosstoolæ建交åå·¥å ·é¾è¦æ¯ä¸è¿°çåæ¥ç¼è¯å®¹æå¾å¤ï¼å¹¶ä¸ä¹æ¹ä¾¿è®¸å¤ï¼å¯¹äºä» ä» ä¸ºäºå·¥ä½éè¦æ建交åç¼è¯å·¥å ·é¾çä½ ï¼å»ºè®®ä½¿ç¨æ¤æ¹æ³ã
è¿è¡which makeinfoï¼å¦æä¸è½æ¾è§è¯¥å½ä»¤ï¼å¨è§£åtexinfo-4.11.tar.bz2ï¼è¿å ¥texinfo-4.11ç®å½ï¼æ§è¡./configure&&make&&make installå®æmakeinfoå·¥å ·çå®è£
ä¸è½½æéèµæºæ件 linux-2.4.20.tar.gzãbinutils-2.19.tar.bz2ãgcc-3.3.6.tar.gzãglibc- 2.3.2.tar.gzãglibc-linuxthreads-2.3.2.tar.gzågdb-6.5.tar.bz2 ãç¶åå°è¿äºå·¥å ·å æ件æ¾å¨æ°å»ºç$HOME/downloadsç®å½ä¸ï¼æåå¨$HOME/ç®å½ä¸è§£åcrosstool-0.43.tar.gzï¼å½
令å¦ä¸ï¼å»ºç«èæ¬æ件
æ¥çéè¦å»ºç«èªå·±çç¼è¯èæ¬ï¼èµ·å为arm.shï¼ä¸ºäºç®åç¼åarm.shï¼å¯»æ¾ä¸ä¸ªææ¥è¿çèæ¬æ件demo-arm.shä½ä¸ºæ¨¡æ¿ï¼ç¶åå°è¯¥èæ¬çå 容å¤å¶å°arm.shï¼ä¿®æ¹arm.shèæ¬ï¼å ·ä½æä½å¦ä¸ï¼
# cd crosstool-0.43
# cp demo-arm.sh arm.sh
# vi arm.sh
ä¿®æ¹åçarm.shèæ¬å 容å¦ä¸ï¼
#!/bin/shå¨arm.shèæ¬æ件ä¸éè¦æ³¨æarm-xscale.datågcc-3.3.6-glibc-2.3.2.dat两个æ件ï¼è¿ä¸¤ä¸ªæ件æ¯ä½ä¸ºCrosstoolçç¼è¯çé ç½®æ件ãå ¶ä¸ arm.datæ件å 容å¦ä¸ï¼ä¸»è¦ç¨äºå®ä¹é ç½®æ件ãå®ä¹çæç¼è¯å·¥å ·é¾çå称以åå®ä¹ç¼è¯é项çã
KERNELCONFIG='pwd'/arm.config # å æ ¸çé ç½®gcc-3.3.6-glibc-2.3.2.datæ件å 容å¦ä¸ï¼è¯¥æ件主è¦å®ä¹ç¼è¯è¿ç¨ä¸æéè¦çåºä»¥åå®å®ä¹ççæ¬ï¼å¦æå¨ç¼è¯è¿ç¨ä¸åç°æäºåºä¸åå¨æ¶ï¼Crosstoolä¼èªå¨å¨ç¸å ³ç½ç«ä¸ä¸è½½ï¼è¯¥å·¥å ·å¨è¿ç¹ä¸ç¸å¯¹æ¯è¾æºè½ï¼ä¹é常æç¨ã
BINUTILS_DIR=binutils-2.19æ§è¡èæ¬
å°Crosstoolçèæ¬æ件åé ç½®æ件åå¤å¥½ä¹åï¼å¼å§æ§è¡arm.shèæ¬æ¥ç¼è¯äº¤åç¼è¯å·¥å ·ãå ·ä½æ§è¡å½ä»¤å¦ä¸ï¼
# cd crosstool-0.43ç»è¿æ°å°æ¶ç漫é¿ç¼è¯ä¹åï¼ä¼å¨/opt/crosstoolç®å½ä¸çææ°ç交åç¼è¯å·¥å ·ï¼å ¶ä¸å æ¬ä»¥ä¸å 容ï¼
arm-linux-addr2line arm-linux-g++ arm-linux-ld arm-linux-sizeç¶åå°çæçç¼è¯å·¥å ·é¾è·¯å¾æ·»å å°ç¯å¢åéPATHä¸å»ï¼æ·»å çæ¹æ³æ¯å¨ç³»ç»/etc/ bashrcæ件çæåæ·»å ä¸é¢ä¸è¡ï¼å¨bashrcæ件ä¸æ·»å ç¯å¢åé
export PATH=/home/jiabing/gcc-3.3.6-glibc-2.3.2/arm-linux-bin/bin:$PATH
è³æ¤ï¼arm-linuxä¸ç交åç¼è¯å·¥å ·é¾å·²ç»å®æï¼ç°å¨å°±å¯ä»¥ä½¿ç¨arm-linux-gccæ¥çæè¯éªç®±ä¸çç¨åºäºï¼
Linux嵌入式交叉编译工具链问题 浅谈
建立配置文件在arm.sh脚本文件中需要注意arm-xscale.dat和gcc-3.3.6-glibc-2.3.2.dat两个文件,这两个文件是作为Crosstool的编译的配置文件。其中 arm.dat文件内容如下,主要用于定义配置文件、定义生成编译工具链的名称以及定义编译选项等。KERNELCONFIG='pwd'\/arm.config # 内核的配置TARGET=arm-l...
关于交叉编译工具链的问题
至于你编译的这些东西版本都比较老,我建议还是尝试降级整个系统来编译、运行你现在的这些东西。或者升级你这个交叉编译工具链到当前主流的版本来用。至于交叉工具连当中的 GCC 和你当前本机的 GCC,完全是两个互相独立的 GCC 。只是他们编译输出的二进制程序针对的指令集不同而已。相对的 binutils 和 gli...
(交叉)编译工具链组成部分分析
交叉编译工具链的核心组成部分包括Binutils、GCC和C库,还需配合Linux kernel headers支持Linux系统。它们各自独立,需分别编译。Binutils负责二进制文件处理,包括ld链接器、as汇编器等,需针对不同CPU架构配置。GCC是编译器集合,负责C、C++等语言的编译,实则是调用其他程序的wrapper。它还包含编译器本身和...
Buildroot 学习笔记 2:配置、交叉编译工具链、使用 Buildroot 构建外部...
在配置和使用 Buildroot 构建嵌入式系统过程中,理解和掌握交叉编译工具链(host 编译工具链和目标系统交叉编译工具链)的配置是关键。Buildroot 提供了两种方案来管理交叉编译工具链:内部工具链后端和外部工具链后端。内部工具链后端是 Buildroot 自己用来编译交叉编译工具链的解决方案。它支持多种C库如uClibc...
Linux 交叉编译简介
如加拿大交叉编译)。在现代桌面系统中,通过模拟器进行本地编译也是一种策略,尽管效率较低,且可能因模拟器与实际硬件的差异导致问题。此外,为了避免主机和本地编译器冲突,交叉编译工具链通常会为实用程序添加特定前缀。了解更多关于Linux交叉编译的详细信息,可以参考链接:landley.net\/writing\/doc...
LINUX交叉编译工具链和GCC是什么关系啊
GCC就是编译器,他的输出每次安装只能有针对一个架构的指令输出。如果要多个架构输出,那就要装多个GCC,所以编译工具链里面会有一个GCC。交叉编译就是跨架构编译,编译出来的程序不能在本机执行(当然有例外情况)。所以这个时候就需要交叉编译工具链。工具链光有GCC是不行的,还需要一个binutils的二进制...
ARM & Linux 基础学习 \/ 配置交叉编译工具链 \/ 编译 Linux 应用和驱动...
编译内核时,需根据特定开发板的配置文件,如arch\/arm\/configs\/目录下的内容进行。首先在Linux源码目录执行配置命令,生成内核文件和设备树文件。对于内核模块的编译,同样在Linux源码目录进行,完成后将模块导入目标板的lib\/modules目录。对于Buildroot构建系统,它简化了嵌入式Linux定制过程,自动化构建bootloader...
交叉编译词义
进行交叉编译时,关键在于在主机上安装合适的交叉编译工具链,如在Windows PC上使用ADS和armcc编译ARM代码,或在Linux PC上使用arm-linux-gcc编译Linux ARM平台代码。在Windows环境下,可能还需要如cygwin这样的工具配合arm-elf-gcc进行编译。这种跨平台的编译方式,解决了嵌入式系统硬件资源受限时的开发问题...
嵌入式linux出现system\/bin\/sh:xxx : No such file or directory的错误...
嵌入式linux的android中,在执行交叉编译的C可执行文件时,出现\/system\/bin\/sh:xxx : No such file or directory或sh:xxx : No such file or directory的错误时,这一般是系统的动态链接器与xxx这个程序中的动态链接器的名字或路径不对(安卓和普通linux的根文件目录不一样)使用静态链接库 即在最后...
嵌入式ARM linux操作系统中如何构建交叉开发环境?
将交叉编译工具“gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2”文件通过U盘的方式拷贝到Linux主机的“\/tmp”目录下,然后执行如下命令进行解压安装交叉编译工具链:vmuser@Linux-host ~$ cd \/tmp vmuser@Linux-host ~$ sudo tar -jxvfgcc-4.4.4-glibc-2.11.1-multilib-...