2014-06-20 80 views
1

我已成功爲64位ubuntu下的RPI設置了交叉驗證環境。我可以使用gstreamer編譯和運行個人項目。Raspberry PI交叉編譯鏈接錯誤 - 未知符號_dl_hwcap

由於gstreamer的性能問題,我想在omxplayer的分支上工作。我將它適用於我的環境,而ffmpeg和omxplayer的編譯本身也很好。

但是,鏈接一個實際的可執行文件(ffmpeg或omxplayer.bin)會產生我無法解決的鏈接錯誤。

找到最後失敗的全輸出鏈接步具有詳細標誌這裏:

https://gist.github.com/deets/3bba7c94017405d28f81

的錯誤消息是

ffmpeg_compiled/usr/local/lib/libavcodec.so: undefined reference to `_dl_hwcap' 
collect2: error: ld returned 1 exit status 

丟失的符號給我提出一些與動態加載。也許libc或libdl被破壞?但是如果編譯另一個項目,這些工作如何正常工作?

回答

1

發現罪魁禍首。設置交叉編譯環境時,請確保您的RPI庫的副本是正確的。我有未解決的符號庫鏈接,需要在我的rsync的RPI文件系統副本中修復。

+0

哪些符號鏈接?我有這個完全相同的錯誤(與omxplayer巧合 - 也可以不)。你用什麼命令來正確的rsync?我正在使用rsync -rl --delete-after --safe-links \ --exclude ='usr/share/***'\ --exclude ='usr/bin/***'\ - exclude ='usr/games/***'\ --exclude ='usr/sbin/***'\ --exclude ='usr/src/***'\ pi @ $ 1:/ {lib ,usr}。 – AlastairG

+0

我這樣做的虛擬機已經走了......我沒有調查過rsync,所以我不能在那裏評論你的命令。如果我沒有記錯的話,這些庫大部分都是/ lib/arm下的系統資源。但最終,只要搜索克隆中的所有鏈接,並且它們是否具有現有目標。 – deets

+0

謝謝。我發現另一篇文章有​​更多的信息,並發現一些斷開的鏈接,但仍然無法使其工作。我將嘗試不使用--safe-links選項(儘管它說在RPi交叉編譯的幾個指南中使用它),然後搜索斷開的鏈接。 – AlastairG