1
我一直在试图动态链接一个共享对象与二进制文件。一切都很好,直到我尝试运行它,它给了我:在交叉编译中找不到动态链接库
/tmp/test: error while loading shared libraries: libxl.so: cannot open shared object file: No such file or directory
也LDD表示该文件无法找到。当然,有问题的库位于默认位置(/ lib/arm-linux/gnueabihf)。在库被复制之后,我也运行了ldconfig。
我检查了以下几件事:
- 集rpath中包含的位置与正确的位置
- 集LD_LIBRARY_PATH
- 创建具有相同名称的虚拟共享对象 - 它已成功发现(当然没有必要的符号)
,创建库为:
ELF 32-bit LSB shared object, ARM, EABI4 version 1 (SYSV), dynamically linked
而测试二进制文件:
ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked
的EABI版本可以导致这些类型的问题与运行?还有什么我可以尝试让它运行?
当我创建一个模拟库并将其放置在与原始库相同的位置时,它被发现并加载(当然没有必要的符号,因此执行失败)。那么问题是EABI版本不匹配是否会导致这样的问题。 – MarGru