今天在做项目的时候,用make命令后出现了/usr/bin/ld: skipping incompatible…问题。
分析:编译器给出的错误信息已经很清楚了:兼容性问题
,即产生了不兼容性且找不到libgstaudio-1.0.so共享库,可是libgstaudio-1.0.so在指定的路径下明明是存在的呢。
错误原因排查:
经过排查发现,我链接的共享库是在arm环境下编译产生的,而主程序却是在非arm环境的(此处错误),因此产生了不兼容性。
这个问题实质是链接库文件时,库文件版本与平台版本不对应的问题。
解决方法:objdump -p ibgstaudio-1.0.so
或者 file ***.o
查看文件信息
看一下该库的版本是32位还是64位的,或是ARM版还是..等等。
仔细分析一下,发现我在编译gst