2014-06-20 81 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