那个ushort的warning我就不说了,小事情。
libhighgui.so:could not read symbols :invalid operation,从错误提示来看,应该是已经找到libhighgui.so了,所以你不用再把路径换来换去的,我觉得更有可能是你生成的libhighgui.so的格式不对,比如目标平台、字节序等。
你先执行下这条命令看看结果:- [root@localhost bin]# file /usr/local/arm/2.95.3/arm-linux/lib-opencv/lib/libhighgui.so
- /usr/local/arm/2.95.3/arm-linux/lib-opencv/lib/libhighgui.so: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.0.0, dynamically linked (uses shared libs), not stripped
复制代码
注意上面的三个地方:
1、是否ELF格式
2、是否ARM版本
3、是LSB还是MSB,这决定了这个动态库的字节序
因为你configure的时候,没有指定prefix参数,所以make install的时候,缺省是被安装到/usr/local下面去了,至于你说你拷贝了,我不知道拷贝的对不对,所以一定要用上面的file命令确认一下文件格式。
如果只是ARM版本的库错拷成了PC版本的,那好办,找到正确的库,拷过去即可。
如果是字节序不对,那就比较麻烦,根据你file的结果,如果是LSB,那么编译程序的时候gcc要加上-mlittle-endian,如果是MSB,则要加上-mbig-endian。
我觉得,前者的可能性比较大,因为你没有prefix,所以缺省安装到/usr/local下,拷贝的时候可能拷错了版本。 |