日期:2014-05-16  浏览次数:20591 次

请教交叉编译不通过的问题
代码在PC机上已经编译通过,通过ldd查看依赖库
        linux-vdso.so.1 =>  (0x00007fff3dffd000)
        libswscale.so.2 => /usr/local/lib/libswscale.so.2 (0x00002ad7df522000)
        libavformat.so.54 => /usr/local/lib/libavformat.so.54 (0x00002ad7df764000)
        libavutil.so.51 => /usr/local/lib/libavutil.so.51 (0x00002ad7dfa98000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003685c00000)
        libavcodec.so.54 => /usr/local/lib/libavcodec.so.54 (0x00002ad7dfcc3000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003686000000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003686c00000)
        libbz2.so.1 => /usr/lib64/libbz2.so.1 (0x000000369a600000)
        libz.so.1 => /lib64/libz.so.1 (0x0000003686400000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003685800000)
然后嵌入式平台众核板上的这些需要的库也是存在的,makefile文件路径我也没写错,但是交叉编译时候就是不通过,以下是一些错误提示,


tile-cc ffmpeg.c -o ffmpeg_tile -I/usr/local/include -I/usr/local/include  -L/root/TileraMDE-3.0.1.125620/tilepro/lib -L/root/TileraMDE-3.0.1.125620/tilepro/tile/usr/lib -L/home/wst/sx/ffmpeg -L/home/wst/sx/ffmpeg/libavutil -L/home/wst/sx/ffmpeg/libavcodec    -L/home/wst/sx/ffmpeg/libswscale   -L/home/wst/sx/ffmpeg/libavformat  -L/home/wst/lyn/workspace/libffmpeg/lib     -lavformat -lavcodec    -lswscale   -lavutil  

     
/home/wst/sx/ffmpeg/libavcodec/libavcodec.so: undefined reference to `expf@GLIBC_2.12'
/home/wst/sx/ffmpeg/libavcodec/libavcodec.so: undefined reference to `ldexpf@GLIBC_2.12'
/home/wst/sx/ffmpeg/libavcodec/libavcodec.so: undefined reference to `log@GLIBC_2.12'
/home/wst/sx/ffmpeg/libavutil/libavutil.so: undefined reference to `realloc@GLIBC_2.12'
/home/wst/sx/ffmpeg/libavutil/libavutil.so: undefined reference to `fabs@GLIBC_2.12'
/home/wst/sx/ffmpeg/libavcodec/libavcodec.so: undefined reference to `exp2@GLIBC_2.12'
/home/wst/sx/ffmpeg/libavformat/libavformat.so: undefined reference to `strncmp@GLIBC_2.12'
/home/wst/sx/ffmpeg/libavutil/libavutil.so: undefined reference to `mmap64@GLIBC_2.12'
/home/wst/sx/ffmpeg/libavformat/libavformat.so: undefined reference to `mkdir@GLIBC_2.12'

我就不明白在PC机上编译通过了就说明所有依赖关系都是满足的了,可是为什么交叉编译就不能通过呢,所有需要的库也是存在的,  
还有哪些地方没考虑到,,求指教
交叉编译

------解决方案--------------------
估计是交叉编译环境中gcc版本或glibc库版本的问题,薄见。。
------解决方案--------------------
file /ho