本人 最近在 构建这样一个工具链,现在对网上的各个 工具链存在疑问。
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æ¥çæè¯éªç®±ä¸çç¨åºäºï¼