【C++】错误ELF类:ELFCLASS32

操作系统:UBUNTU 18.04.4 ARM64版本

当使用dlopen调用动态库的时候,出现了打开失败的错误,调用dlerror()进行分析,发现出现了以下错误:

XX.so:错误ELF类:ELFCLASS32

调用以下指令查看动态库详细信息:

file XX.so

返回以下信息:

libXXX.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=a894065ef4314895c05478fed8f6f346838e2007, not stripped

发现是因为调用的动态为32位的,而我当前的操作系统是64位的ARM版本的,所以不能兼容(X86_64版本的大部分动态库可兼容32位,但是ARM版本的不一定可以兼容32位)。

所以将该动态库更换为64位就可以了

你可能感兴趣的:(C++,c语言,操作系统,c++,linux,elf文件,c)