看板 LinuxDev 關於我們 聯絡資訊
※ 引述《FFz (澎湖.仙人掌.234)》之銘言: : : → aprotoss:能不能將你的下的configure參數跟安裝套件的順序列出呢.. 03/29 14:01 : : → aprotoss:有時會是你的套件安裝順序跟configure參數的問題 03/29 14:02 : : → aprotoss:一開始以為你是安裝一般的檔案,如果是toolchain,步驟上 03/29 14:04 : : → aprotoss:會跟一般的差有點多...真的很有挑戰性 03/29 14:05 : 回 aprotoss大 : 我安裝套件的順序是 : binutils-2.16.1.tar.gz,其configure的參數如下 : ../binutils-2.16.1/configure --target=arm-elf --prefix=/foo 接下來的步驟好像不是這樣. 建議你先看過這一篇build toolchain的教學: http://www.schnozzle.org/~coldwell/toolchain/ : 接著安裝gcc-3.3.6.tar.gz,其configure的參數如下 : ../gcc-3.3.6/configure --target=arm-elf --prefix=/foo : --enable-languages=c,c++ --with-newlibCI.jpg 這是因為gcc似乎是去/foo/arm-elf/usr/include/找C語言的表頭檔, 而不是去/usr/include/找. (請參考gcc原始碼資料夾底下的INSTALL/configure.html) 所以你好像要必須先裝上glibc的headers,也就是上面教學的這一段: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Glibc headers This step installs the header files that come with glibc. Two of them are generated during the glibc build, which we don't do until later on. Fortunately, it is sufficient to substitute empty files. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 但是你用的是newlib,這我就不是很清楚了, 不過我猜你應該可以用類似的手法安裝newlib的headers. 另外還有一個問題就是你在編譯gcc之前應該要下載Linux的kernel source. 請去這裡下載: http://www.kernel.org 另外在安裝glibc的時後一定要三思這個指令: make install_root=${SYSROOT} install 如果不小心輸入成make install,恭喜你,你的作業系統掛了, 你把For ARM的glibc灌到For x86的機器上了 XD 不過還有挽舊的機會,就是用別台機器抓libc6與libc6 headers for x86的package, 然後解壓縮,複製到掛掉的Linux的根目錄. 例如Ubuntu可以去這裡找到libc6與libc6-dev這兩個套件: ftp://ftp.cse.yzu.edu.tw/ubuntu/pool/main/g/glibc 然後用ar x解開deb,tar zxf解開tar.gz. 我照著"Building a GNU/Linux ARM Toolchain (from scratch)"的教學 成功build binutils,gcc,glibc,只不過沒有機器可以試. 我是幾乎是完全照上面的方法去做,連程式的版本,patch都一樣. 但這樣編過一次後,讓我學到不少東西(不過我還沒有能力去自己找patch, 甚至自己寫patch).另外我在make glibc時有遇到一個上面教學文件沒提到的bug, 就是好像在編譯version.h的時後gcc抱怨version.h語法錯誤, 我用vim編輯器改了一下就可以繼續make了. 建議要編toolchain之前要多看gcc的安裝說明, gcc,binutils最好也要有使用的經驗,也要懂一點C語言. make指令也最好學一學. gcc,binutils,make它們的說明文件都可以在GNU的網站找到. 最好也要懂一些計算機組織的觀念(也就是指令集意義的部份). 不是我囉唆,編toolchain真的就這麼囉唆. 以上是我編toolchain的經驗. 歡迎大家分享不錯的Build toolchain的教學. : : 推 yhuiyang:挑戰一:如何在沒有compiler時,compile出compiler 03/29 23:15 : 回 yhuiyang大 : 我安裝系統時就有安裝上gcc了 : 只是教授給的work要另外裝一個 : 所以又裝了另一個gcc在自訂的位置上 : 也就是現在要裝的 gcc-3.3.6 裝在 /foo 上 -- Albert Einstein : If there is any religion that could cope with modern scientific needs it would be Buddhism. 《金剛經》一切有為法 如夢幻泡影 如露亦如電 應作如是觀 http://web.cc.ncu.edu.tw/~93501025/jg.doc -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.200.121 ※ 編輯: zxvc 來自: 140.115.200.121 (03/30 15:54) ※ 編輯: zxvc 來自: 140.115.200.121 (03/30 16:00)
tseng1129:真的很麻煩嗎??? 為何不試試看crosstool呢? 03/31 11:59
tseng1129:網址在這 http://kegel.com/crosstool/ 03/31 12:00
tseng1129:裡面的資料比任何說明文件齊全 只少不用去找gcc 03/31 12:01
tseng1129:, binutils跟 libg 的配對關係.. 03/31 12:03
tseng1129:是glibc的配對... 03/31 12:04