【发布时间】:2021-12-13 16:17:10
【问题描述】:
也许我做错了,但我没有学到其他东西。最重要的是,我决定构建一个程序,将libOpenSLES.so(来自 AndroidNDK 的库)本地链接到 raspberrypi4。
我在树莓派上的操作系统:Debian Bullseye armhf。
uname -ar
Linux Guardian 5.10.52-v7l + # 1441 SMP Tue Aug 3 18:11:56 BST 2021 armv7l GNU / Linux
为此,我将 Android NDK 中的库和头文件直接复制到我的环境中。
ls /usr/include/SLES
OpenSLES.h OpenSLES_AndroidConfiguration.h OpenSLES_Platform.h
OpenSLES_Android.h OpenSLES_AndroidMetadata.h
file /usr/lib/libOpenSLES.so
/usr/lib/libOpenSLES.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID [md5 / uuid] = ee43a7abfd4e7dd27b03b0c97b80b768, with debug_info, not stripped
The description is the same for all other libraries in the system.
使用链接键 -lOpenSLES 构建的程序没有错误,但在启动时加载此库时出错
E: [pulseaudio] ltdl-bind-now.c: 无法打开模块 /home/pulseaudio-android/testbuild/src/.libs/module-opensles.so: libOpenSLES.so: 无法打开共享对象文件:没有这样的文件或目录
同时,ldd 无法正常运行
ldd /usr/lib/libOpenSLES.so
不是动态可执行文件
我为AndroidNDK 中提供的所有库尝试了ldd
find ./android-ndk-r23b -name libOpenSLES.so | grep androideabi | xargs ldd
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/26/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/29/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/31/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/27/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/24/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/18/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/19/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/23/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/28/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/22/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/16/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/21/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/30/libOpenSLES.so:
not a dynamic executable
./android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/17/libOpenSLES.so:
感谢您的帮助。
【问题讨论】:
标签: c++ c linux android-ndk