之前一直在摸索,為什麼使用海思3515官方提供的編譯器在對opencv進行交叉編譯時會出現各種莫名其妙的錯誤。後來買了一塊3520d的開發板,商家為我提供了新版的sdk,編譯器版本公升級為4.4.1。當我用新版的編譯器再進行交叉編譯時,竟然一路順暢,很容易地就完成了整個編譯過程。再回過頭來,反省之前遇到的各種問題,發現其實最大的問題出在編譯器版本上。在舊版的sdk裡,編譯器版本為gcc 3.4.3,這已經是很老的編譯器版本了。再這個版本下,我費了很大力氣最終完成了opencv的交叉編譯,生成了動態鏈結庫。卻發現還是無法完成基於opencv的樣例程式編譯,因為提示lrint函式未定義。後來查詢,該函式的確在低版本的gcc裡是沒有定義的。
而之前,我不是沒有考慮換掉交叉編譯器的,我跟當時的板子提供商溝通時,他給的說法是,不能換,只能用原版提供的!同時,身邊也沒有現用的3520sdk,也就沒有嘗試其他的編譯器了。之後,在購買3520時,**商家給的答案竟然是,3515/3518/3520竟然是同乙個sdk!也就是說,3515是可以用3520sdk裡面的gcc4.4.1編譯器的!
到現在,只能說自己還是太懶了,怪自己沒有去嘗試下這種可能性。學技術,就是乙個不斷是錯的過程。繼續加油吧!希望這篇博文能給遇到同樣問題的朋友一些幫助。
由於時間倉促,文章就到此為止吧。等有空,再將文章重新潤色補充。
海思開發板上掛載額外的儲存空間
輸入reboot命令進入uboot 輸入print命令,可以在顯示結果中看到下面這一行 root dev mmcblk0p3 rootfstype ext4 rw init linuxrc rootwait blkdevparts mmcblk0 1m boot 12m kernel 96m roo...
移植opencv到ARM開發板
安裝交叉編譯鏈 我使用的是arm linux gcc 4.3.2,解壓到目錄 usr local arm 4.3.2,然後在環境變數path中增加 usr local arm 4.3.2 bin 安裝cmake opencv 2.0之後的版本,必須使用cmake建立makefile。我使用的cmak...
移植 OpenCV到ARM開發板
交叉編譯opencv依賴庫 交叉編譯opencv依賴庫 1.libz 的交叉編譯 configure prefix opt opencv arm open shared 修改 makefile cc arm linux gcc ar arm linux ar ranlib arm linux ran...