在交叉编译中找不到动态链接库
Dynamically linked library cannot be found in cross-compilation
我一直在尝试将共享对象与二进制文件动态链接。一切都很好,直到我试着运行它,这给了我:
/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版本是否会导致运行中出现此类问题?还有什么我可以试着让它运行的吗?
库路径必须是HOST计算机中库的位置,而不是目标计算机。看起来"/lib/arm-linux/gnueabihf"是库在目标机器中的位置。
在工具链sysroot中查找libxl.so的正确路径。
相关文章:
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- Red Hat:使用<atomic>编译很好,但链接器找不到__atomic_store_16;什么库?
- 链接器找不到导入的 DLL 的 LIB 文件
- 链接器找不到库,即使我用 -L 指定了它的位置
- 链接器找不到 Lua 库定义
- libGL确实存在,但链接器找不到它 - Qt 4.8.7,CentOS 7.5
- 使用 msvc /MDd cryptlib.lib 构建 Crypto++ 链接时找不到 cryptopp.lib
- 链接器找不到数学库
- 与CMakeLists链接:ld找不到库
- Xcode 在链接期间找不到静态库,即使它是引用的产品
- RIOS X Mavericks上使用clang++构建的内部示例在链接上找不到STL标准库
- 为什么链接器找不到 CppUnit 库?
- 链接器找不到现有库
- JNI HellowWorld 不满意链接错误 找不到依赖库
- C++:链接器找不到 -lcrypto,但库在路径中
- C++ Boost 库链接器找不到,无法编译
- GCC 链接器找不到标准库?
- c++链接器找不到外部库
- 链接器找不到静态库
- Linux 上的链接问题(找不到相应库的名称)