Re: [問題] 正確安裝Library給cross compiler的方式

看板Linux作者 (幽光)時間11年前 (2014/04/04 21:38), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《fishlinghu (令狐瑜)》之銘言: : 我最近在開發Zedboard這塊板子 : 所以有用到cross compiler : 我是用現成的arm-linux-gnueabi-g++ : 可是最近幾天遇到許多問題 : 就是我不知道該怎麼樣才有辦法把library或相關package : 安裝好給cross compiler使用 : 我遇到的第一個問題是安裝LibSerial這個library的時候 : 我用apt-get把可以抓的相關套件都裝好了 : 可是不管怎樣我下-lserial的指令的時候cross compiler就是reference不到 : 我照這篇 : http://stackoverflow.com/questions/2272200/undefined-referance-to-libserial : 下去/usr/lib裡面看該有的檔案明明都有 : 後來我想到這篇可能只適用於一般g++ : 我就把那個library的相關檔案也都丟進/usr/arm-linux-gnueabi/lib下面 : 然後就變成skipping incompatible......cannot find...... : 我認為是library安裝錯誤的問題 : 不知道有沒有人可以告訴我該怎麼正確安裝library : 或是提供我一個你認為不錯的網站 : 然後另一個問題是 : 我在make uboot的時候遇到沒有dtc的問題 : 我就去抓了dtc壓縮檔 : 解壓之後make + make install(裡面沒有configure檔) : 可是我打dtc -v terminal還是顯示根本沒有這個套件 : 另外這個套件應該也是要讓我的cross compiler找得到才對 : 以上 : 希望有人可以為我解答 : 或是提供我一個你認為可以參考的網站 : 非常非常感謝你 : 我現在搞不太清楚linux的套件跟library都是怎麼裝還有裝在哪裡 : 還有當我下指令的時候linux是去哪裡找套件 : compiler的時候compiler是怎麼reference到library(我看到超多叫作lib的資料夾) : 以及該怎麼樣g++/arm-linux-gnueabi-g++才會看得到我要給他們用的東西 : BTW我是用Ubuntu12.04.4 LTS 在ubuntu 12.04/debian 7之前,我會推薦用scratchbox2。 但自從debian系列支持multiarch之後,scratchbox2就壞掉了。 稍微介紹一下scratchbox2原理(假設host是x86, target是armel,就是沒有hard float): 在x86 host上面要編譯arm的binary file,如果只有用到standard C library的話, cross compiler就可以了。但是當要用到別的library例如qt,gtk, 或是xlib. 你就必須要讓cross compiler知道要去哪裡找到armel版本的library在哪,所以你光是灌 x86版本的lib是不行的,必須灌armel版本的lib. 在現在的multiarch架構下是辦得到的 但是這樣會搞得host端library版本很混亂。 scratchbox2則是需要使用者準備一個arm的rootfs,然後用sb2-init指令建立連結。 以後用sb2 編譯命令(sb2 gcc, sb2 make)時,就會自動到那個rootfs找需要的library. 如果rootfs裡面沒有需要的lib, 則chroot進去,用apt-get裝起來就好了。 只是scratchbox2似乎很久沒有維護了,現在我正在修,不過功力不夠...... (我大部分的時間都在上成人網站,而且coding很爛) https://github.com/h113331pp/scratchbox2 git下來之後, 記得change branch到2.3_development。 目前sb2 wrapper中的ldd跟dpkg-checkbuilddeps是壞的,哪個好心人幫我修一下 囧 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.69.16 ※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1396618703.A.CCC.html

04/04 22:39, , 1F
推強者
04/04 22:39, 1F
文章代碼(AID): #1JFhNFpC (Linux)
文章代碼(AID): #1JFhNFpC (Linux)