ARM学习(27)链接库依赖学习(二)dlopen failed:library xxxx.so

news2024/12/28 19:19:18

笔者继续学习一下链接的依赖库。

1、起因

Android下面需要需要一个日志解码库,所以笔者就编译了一个parse.so来进行解码,

  • 编译器:Clang,基于llvm后端的编译器
  • 平台:交叉编译,linux -> aarch64 linux Android,目标平台是这样处理器,arm64位的。

多说几句,该编译器同时也可以编译出其他目标平台的,比如x86_64、x86、armv7a等平台,每个平台都有每个平台下面的库,比如C库等。

比如下图,有四个平台的编译库,如果编译会选择对应平台的库。有我们常见的c库以及c++库。libc、libm、libdl、libstdc++ 、libc++_static、libc++_shared
在这里插入图片描述
在这里插入图片描述
接下来的问题,就与上面的问题有关,笔者编译出来的库,一运行,发现有依赖。
在这里插入图片描述

然后笔者一查看,发现确实有依赖相应的库,检查依赖看上篇文章ARM学习(26)链接库的依赖查看。

在这里插入图片描述
如果将该库放到本地,则可以正常运行,
如果发布还必须要带着这一个库,确实麻烦,所以必须要静态编译出一个不依赖C++的库。

注意

  • 如果放到本地,需要添加环境变量,因为默认调用库只是找(/lib 、usr/lib)Linux系统、(system/lib64、system/lib)Android系统。
  • export LD_LIBRARY_PATH=xxxx ,目录最好写完整,你要写相对目录。
  • 还要注意32位库和64位库的区别,否则会报错,。在这里插入图片描述如果不加环境变量,则提示找不到对应的库,当然也可以放到系统目录下面,就不用设置环境变量了。在这里插入图片描述
    libc++_shared.so搞成32位,然后本机试64位,需要导入64位的库文件。
    在这里插入图片描述

经过测试,确实只是依赖这一个库(libc++_shared.so),其他库在android目录下面军可以找到(libc.so 和lib.dl.so)。
在这里插入图片描述

2、问题解决

尝试一(失败)

笔者经过查询资料发现,c++_shared.so 动态库,其静态库是c++_static.a,于是笔者就去链接,但是失败了,还是有依赖。
在这里插入图片描述

尝试二(失败)

明明已经是指明了链接静态库,为什么不行呢,
于是笔者经过查询资料,尝试全部静态链接,通过-static,但是也失败了,看起来静态库需要有main函数才可以链接成功。但是笔者只是一个函数,并没有main函数,无法链接成功。

在这里插入图片描述

尝试三(失败)

笔者从网上搜索到,需要使用静态链接C++库,选项,-static-libstdc++,但是依然失败,提示其编译期间没有用
在这里插入图片描述

尝试四(失败)

笔者又搜索网上,可以指定链接静态库选项,-Wl,-Bstatic,但是依然没有效果。
在这里插入图片描述

尝试五(成功)

笔者经过搜索查到,网上都是使用ndk-build去编译,可以指明静态链接c++的库,就不会有依赖了,于是尝试。

Android.mk
在这里插入图片描述
Application.mk,其里面指明了静态链接,
在这里插入图片描述
然后编译,可以看到没有c++_shared的依赖了。
在这里插入图片描述
于是笔者查看ndk build的编译选项,bdk-build V=1,V=1是显示编译选项,-B是清除原来的编译。
在这里插入图片描述

尝试六(成功)

然后笔者就尝试全路径编译,竟然也可以,
在这里插入图片描述
然后笔者将全路径改为-lc++_static,也可以了,原来是-lstdc++的原因,笔者后来尝试加上-lstdc++,又不行了,看来需要搞清楚这些库是做什么的,不能随便写依赖。
在这里插入图片描述
然后再Andoroid下面测试,也可以正常导入了。
在这里插入图片描述

总结

  • 加-lc++_static可以静态链接c++的库,前面不要加-lstdc++,不然就无法静态链接c++的库。以上的测试都说明了只要增加-lstdc++,必然会链接c++_shared.so.

  • c++_shared.so 不是android里面的标准库,所以目标target设备一般不会有,

  • 且在Android12 源码中,也能找到其为了避开libc++_shared.so,而使用libc++_static.a的例子;
    在这里插入图片描述

3、附录

一些库的文件组成,便于我们了解库的内容。

libc

包括c库,必然字符串操作(比较、宽字符wchar等),内存拷贝操作,文件操作,网络操作,posix相关、线程操作(pthread)等等

jemalloc.o
arena.o
background_thread.o
base.o
bin.o
bitmap.o
ckh.o
ctl.o
div.o
extent.o
extent_dss.o
extent_mmap.o
hash.o
hooks.o
large.o
log.o
malloc_io.o
mutex.o
mutex_pool.o
nstime.o
pages.o
prng.o
prof.o
rtree.o
stats.o
sz.o
tcache.o
ticker.o
tsd.o
witness.o
libc_init_static.o
getauxval.o
sysconf.o
vdso.o
setjmp_cookie.o
android_set_abort_message.o
strrchr.o
memchr.o
memcmp.o
memcpy.o
memmove.o
memset.o
stpcpy.o
strchr.o
strcmp.o
strcpy.o
strlen.o
strncmp.o
strnlen.o
wmemmove.o
__bionic_clone.o
_exit_with_stack_teardown.o
setjmp.o
syscall.o
vfork.o
property_info_parser.o
context_node.o
contexts_split.o
contexts_serialized.o
prop_area.o
prop_info.o
system_properties.o
NetdClientDispatch.o
__bionic_get_shell_path.o
__cmsg_nxthdr.o
__errno.o
__gnu_basename.o
__libc_current_sigrtmax.o
__libc_current_sigrtmin.o
abort.o
accept.o
accept4.o
access.o
arpa_inet.o
assert.o
atof.o
bionic_allocator.o
bionic_arc4random.o
bionic_futex.o
bionic_netlink.o
bionic_systrace.o
bionic_time_conversions.o
brk.o
c16rtomb.o
c32rtomb.o
chmod.o
chown.o
clearenv.o
clock.o
clock_getcpuclockid.o
clock_nanosleep.o
clone.o
connect.o
ctype.o
dirent.o
dup2.o
environ.o
error.o
eventfd_read.o
eventfd_write.o
exec.o
faccessat.o
fchmod.o
fchmodat.o
fdsan.o
ffs.o
fgetxattr.o
flistxattr.o
flockfile.o
fpclassify.o
fsetxattr.o
ftruncate.o
ftw.o
futimens.o
getcwd.o
getdomainname.o
getentropy.o
gethostname.o
getloadavg.o
getpagesize.o
getpgrp.o
getpid.o
getpriority.o
gettid.o
get_device_api_level.o
grp_pwd.o
grp_pwd_file.o
iconv.o
icu_wrappers.o
ifaddrs.o
inotify_init.o
ioctl.o
killpg.o
langinfo.o
lchown.o
lfs64_support.o
libc_init_common.o
libgen.o
link.o
locale.o
lockf.o
lstat.o
mblen.o
mbrtoc16.o
mbrtoc32.o
memmem.o
mempcpy.o
mkdir.o
mkfifo.o
mknod.o
mntent.o
mremap.o
net_if.o
netdb.o
netinet_in.o
nl_types.o
open.o
pathconf.o
pause.o
pipe.o
poll.o
posix_fadvise.o
posix_fallocate.o
posix_madvise.o
posix_timers.o
ptrace.o
pty.o
raise.o
rand.o
readlink.o
reboot.o
recv.o
rename.o
rmdir.o
scandir.o
sched_getaffinity.o
sched_getcpu.o
semaphore.o
send.o
setegid.o
seteuid.o
setpgrp.o
sigaction.o
signal.o
sigprocmask.o
socket.o
spawn.o
stat.o
statvfs.o
stdlib_l.o
strchrnul.o
strerror.o
string_l.o
strings_l.o
strsignal.o
strtol.o
strtold.o
swab.o
symlink.o
sync_file_range.o
sys_epoll.o
sys_msg.o
sys_sem.o
sys_shm.o
sys_signalfd.o
sys_time.o
sysinfo.o
syslog.o
system.o
system_property_api.o
system_property_set.o
tdestroy.o
termios.o
thread_private.o
timespec_get.o
tmpfile.o
umount.o
unlink.o
wait.o
wchar.o
wchar_l.o
wcstod.o
wctype.o
wcwidth.o
wmempcpy.o
icu_static.o
ns_name.o
ns_netint.o
ns_parse.o
ns_print.o
ns_samedomain.o
ns_ttl.o
getaddrinfo.o
gethnamaddr.o
getnameinfo.o
getservent.o
nsdispatch.o
sethostent.o
herror.o
res_cache.o
res_comp.o
res_data.o
res_debug.o
res_init.o
res_mkquery.o
res_query.o
res_send.o
res_state.o
res_stats.o
ev_streams.o
ev_timers.o
fortify.o
__memcpy_chk.o
ldexp.o
sleep.o
usleep.o
getopt_long.o
hcreate.o
hcreate_r.o
hdestroy_r.o
hsearch_r.o
qsort.o
quick_exit.o
wcpcpy.o
wcpncpy.o
wcscasecmp.o
wcscat.o
wcschr.o
wcscmp.o
wcscpy.o
wcscspn.o
wcsdup.o
wcslcat.o
wcslen.o
wcsncasecmp.o
wcsncat.o
wcsncmp.o
wcsncpy.o
wcsnlen.o
wcspbrk.o
wcsrchr.o
wcsspn.o
wcsstr.o
wcstok.o
wmemchr.o
wmemcmp.o
wmemcpy.o
wmemset.o
glob.o
realpath.o
gdtoa_support.o
dmisc.o
dtoa.o
gdtoa.o
gethex.o
gmisc.o
hd_init.o
hdtoa.o
hexnan.o
ldtoa.o
misc.o
smisc.o
strtod.o
strtodg.o
strtof.o
strtord.o
sum.o
ulp.o
strtorQ.o
jemalloc_wrapper.o
random.o
nice.o
psignal.o
utime.o
utmp.o
nsap_addr.o
regcomp.o
regerror.o
regexec.o
regfree.o
bsearch.o
drand48.o
erand48.o
jrand48.o
lcong48.o
lrand48.o
mrand48.o
nrand48.o
_rand48.o
rand_r.o
reallocarr.o
seed48.o
srand48.o
arc4random.o
arc4random_uniform.o
memrchr.o
stpncpy.o
strcat.o
strlcat.o
strlcpy.o
strncat.o
strncpy.o
vfprintf.o
vfwprintf.o
alarm.o
ctype_.o
daemon.o
err.o
errx.o
fnmatch.o
ftok.o
getprogname.o
isctype.o
setprogname.o
tolower_.o
toupper_.o
verr.o
verrx.o
vwarn.o
vwarnx.o
warn.o
warnx.o
btowc.o
mbrlen.o
mbstowcs.o
mbtowc.o
wcscoll.o
wcstoimax.o
wcstol.o
wcstoll.o
wcstombs.o
wcstoul.o
wcstoull.o
wcstoumax.o
wcsxfrm.o
wctob.o
wctomb.o
base64.o
htonl.o
htons.o
inet_lnaof.o
inet_makeaddr.o
inet_netof.o
inet_ntoa.o
inet_ntop.o
inet_pton.o
ntohl.o
ntohs.o
res_random.o
fgetln.o
fgetwc.o
fgetws.o
flags.o
fpurge.o
fputwc.o
fputws.o
fvwrite.o
fwide.o
getdelim.o
gets.o
makebuf.o
mktemp.o
open_memstream.o
open_wmemstream.o
rget.o
setvbuf.o
tempnam.o
tmpnam.o
ungetc.o
ungetwc.o
vasprintf.o
vdprintf.o
vsscanf.o
vswprintf.o
vswscanf.o
wbuf.o
wsetup.o
abs.o
div.o
getenv.o
getsubopt.o
insque.o
imaxabs.o
imaxdiv.o
labs.o
ldiv.o
llabs.o
lldiv.o
lsearch.o
remque.o
setenv.o
tfind.o
tsearch.o
memccpy.o
strcasecmp.o
strcasestr.o
strcoll.o
strcspn.o
strdup.o
strndup.o
strpbrk.o
strsep.o
strspn.o
strstr.o
strtok.o
strxfrm.o
wcslcpy.o
wcswidth.o
__libc_init_main_thread.o
__stack_chk_fail.o
__set_tls.o
__set_errno.o
___clock_nanosleep.o
___close.o
___faccessat.o
___fchmod.o
___fchmodat.o
___fgetxattr.o
___flistxattr.o
___fsetxattr.o
___mremap.o
___rt_sigqueueinfo.o
__accept4.o
__brk.o
__clock_getres.o
__clock_gettime.o
__connect.o
__epoll_pwait.o
__exit.o
__fadvise64.o
__fstatfs.o
__getcpu.o
__getcwd.o
__getdents64.o
__getpid.o
__getpriority.o
__gettimeofday.o
__ioctl.o
__openat.o
__ppoll.o
__pselect6.o
__ptrace.o
__reboot.o
__rt_sigaction.o
__rt_sigpending.o
__rt_sigprocmask.o
__rt_sigsuspend.o
__rt_sigtimedwait.o
__sched_getaffinity.o
__set_tid_address.o
__signalfd4.o
__socket.o
__statfs.o
__sync_file_range.o
__timer_create.o
__timer_delete.o
__timer_getoverrun.o
__timer_gettime.o
__timer_settime.o
__waitid.o
_exit.o
acct.o
adjtimex.o
bind.o
capget.o
capset.o
chdir.o
chroot.o
clock_adjtime.o
clock_settime.o
delete_module.o
dup.o
dup3.o
epoll_create1.o
epoll_ctl.o
eventfd.o
execve.o
fallocate.o
fchdir.o
fchown.o
fchownat.o
fcntl.o
fdatasync.o
flock.o
fremovexattr.o
fstat64.o
fstatat64.o
fsync.o
ftruncate.o
getegid.o
geteuid.o
getgid.o
getgroups.o
getitimer.o
getpeername.o
getpgid.o
getppid.o
getrandom.o
getresgid.o
getresuid.o
getrlimit.o
getrusage.o
getsid.o
getsockname.o
getsockopt.o
getuid.o
getxattr.o
init_module.o
inotify_add_watch.o
inotify_init1.o
inotify_rm_watch.o
kill.o
klogctl.o
lgetxattr.o
linkat.o
listen.o
listxattr.o
llistxattr.o
lremovexattr.o
lseek.o
lsetxattr.o
madvise.o
mincore.o
mkdirat.o
mknodat.o
mlock.o
mlockall.o
mmap.o
mount.o
mprotect.o
msync.o
munlock.o
munlockall.o
munmap.o
nanosleep.o
personality.o
pipe2.o
prctl.o
pread64.o
preadv.o
prlimit64.o
process_vm_readv.o
process_vm_writev.o
pwrite64.o
pwritev.o
quotactl.o
read.o
readahead.o
readlinkat.o
readv.o
recvfrom.o
recvmmsg.o
recvmsg.o
removexattr.o
renameat.o
sched_get_priority_max.o
sched_get_priority_min.o
sched_getparam.o
sched_getscheduler.o
sched_rr_get_interval.o
sched_setaffinity.o
sched_setparam.o
sched_setscheduler.o
sched_yield.o
sendfile.o
sendmmsg.o
sendmsg.o
sendto.o
setdomainname.o
setfsgid.o
setfsuid.o
setgid.o
setgroups.o
sethostname.o
setitimer.o
setns.o
setpgid.o
setpriority.o
setregid.o
setresgid.o
setresuid.o
setreuid.o
setrlimit.o
setsid.o
setsockopt.o
settimeofday.o
setuid.o
setxattr.o
shutdown.o
sigaltstack.o
socketpair.o
splice.o
swapoff.o
swapon.o
symlinkat.o
sync.o
syncfs.o
sysinfo.o
tee.o
tgkill.o
timerfd_create.o
timerfd_gettime.o
timerfd_settime.o
times.o
truncate.o
umask.o
umount2.o
uname.o
unlinkat.o
unshare.o
utimensat.o
vmsplice.o
wait4.o
write.o
writev.o
asctime.o
difftime.o
localtime.o
strftime.o
strptime.o
bionic.o
wcsftime.o
__cxa_guard.o
__cxa_pure_virtual.o
new.o
async_safe_log.o
ether_aton.o
ether_ntoa.o
fts.o
initgroups.o
isatty.o
pututline.o
sched_cpualloc.o
sched_cpucount.o
fmemopen.o
parsefloat.o
refill.o
stdio.o
stdio_ext.o
vfscanf.o
vfwscanf.o
exit.o
ndk_cruft.o
bionic_elf_tls.o
pthread_atfork.o
pthread_attr.o
pthread_barrier.o
pthread_cond.o
pthread_create.o
pthread_detach.o
pthread_equal.o
pthread_exit.o
pthread_getcpuclockid.o
pthread_getschedparam.o
pthread_gettid_np.o
pthread_internal.o
pthread_join.o
pthread_key.o
pthread_kill.o
pthread_mutex.o
pthread_once.o
pthread_rwlock.o
pthread_sigqueue.o
pthread_self.o
pthread_setname_np.o
pthread_setschedparam.o
pthread_spinlock.o
__cxa_thread_atexit_impl.o
atexit.o
fork.o
dl_iterate_phdr_static.o
malloc_common.o
malloc_limit.o

libm

主要是数学相关的库,对数计算,三角计算以及指数等等。

cosf.o
exp2.o
exp2f.o
exp2f_data.o
exp.o
exp_data.o
expf.o
log2.o
log2_data.o
log2f.o
log2f_data.o
log.o
log_data.o
logf.o
logf_data.o
math_err.o
math_errf.o
pow.o
pow_log_data.o
powf.o
powf_log2_data.o
sincosf.o
sincosf_data.o
sinf.o
b_exp.o
b_log.o
b_tgamma.o
catrig.o
catrigf.o
e_acos.o
e_acosf.o
e_acosh.o
e_acoshf.o
e_asin.o
e_asinf.o
e_atan2.o
e_atan2f.o
e_atanh.o
e_atanhf.o
e_cosh.o
e_coshf.o
e_fmod.o
e_fmodf.o
e_gamma.o
e_gammaf.o
e_gammaf_r.o
e_gamma_r.o
e_hypot.o
e_hypotf.o
e_j0.o
e_j0f.o
e_j1.o
e_j1f.o
e_jn.o
e_jnf.o
e_lgamma.o
e_lgammaf.o
e_lgammaf_r.o
e_lgamma_r.o
e_log10.o
e_log10f.o
e_remainder.o
e_remainderf.o
e_rem_pio2.o
e_rem_pio2f.o
e_scalb.o
e_scalbf.o
e_sinh.o
e_sinhf.o
k_cos.o
k_cosf.o
k_exp.o
k_expf.o
k_rem_pio2.o
k_sin.o
k_sinf.o
k_tan.o
k_tanf.o
s_asinh.o
s_asinhf.o
s_atan.o
s_atanf.o
s_carg.o
s_cargf.o
s_cargl.o
s_cbrt.o
s_cbrtf.o
s_ccosh.o
s_ccoshf.o
s_cexp.o
s_cexpf.o
s_cimag.o
s_cimagf.o
s_cimagl.o
s_clog.o
s_clogf.o
s_conj.o
s_conjf.o
s_conjl.o
s_copysign.o
s_copysignf.o
s_cos.o
s_cpow.o
s_cpowf.o
s_cpowl.o
s_cproj.o
s_cprojf.o
s_cprojl.o
s_creal.o
s_crealf.o
s_creall.o
s_csinh.o
s_csinhf.o
s_csqrt.o
s_csqrtf.o
s_ctanh.o
s_ctanhf.o
s_erf.o
s_erff.o
s_expm1.o
s_expm1f.o
s_fdim.o
s_finite.o
s_finitef.o
s_frexp.o
s_frexpf.o
s_ilogb.o
s_ilogbf.o
s_llround.o
s_llroundf.o
s_log1p.o
s_log1pf.o
s_logb.o
s_logbf.o
s_lround.o
s_lroundf.o
s_modf.o
s_modff.o
s_nan.o
s_nearbyint.o
s_nextafter.o
s_nextafterf.o
s_remquo.o
s_remquof.o
s_scalbln.o
s_scalbn.o
s_scalbnf.o
s_signgam.o
s_significand.o
s_significandf.o
s_sin.o
s_sincos.o
s_tan.o
s_tanf.o
s_tanh.o
s_tanhf.o
s_tgammaf.o
w_cabs.o
w_cabsf.o
w_cabsl.o
w_drem.o
w_dremf.o
ccoshl.o
ccosl.o
cephes_subrl.o
cexpl.o
csinhl.o
csinl.o
ctanhl.o
ctanl.o
digittoint.o
significandl.o
fake_long_double.o
builtins.o
signbit.o
fenv.o
lrint.o
sqrt.o
catrigl.o
e_acosl.o
e_acoshl.o
e_asinl.o
e_atan2l.o
e_atanhl.o
e_fmodl.o
e_hypotl.o
e_lgammal.o
e_remainderl.o
e_sqrtl.o
s_asinhl.o
s_atanl.o
s_cbrtl.o
s_ceill.o
s_clogl.o
s_copysignl.o
e_coshl.o
s_cosl.o
s_csqrtl.o
s_floorl.o
s_fmal.o
s_fmaxl.o
s_fminl.o
s_modfl.o
s_frexpl.o
s_ilogbl.o
s_llrintl.o
s_llroundl.o
s_logbl.o
s_lrintl.o
s_lroundl.o
s_nextafterl.o
s_nexttoward.o
s_nexttowardf.o
s_remquol.o
s_rintl.o
s_roundl.o
s_scalbnl.o
s_sincosl.o
e_sinhl.o
s_sinl.o
s_tanhl.o
s_tanl.o
s_truncl.o
invtrig.o
e_lgammal_r.o
e_powl.o
k_cosl.o
k_sinl.o
k_tanl.o
s_erfl.o
s_exp2l.o
s_expl.o
s_logl.o
s_nanl.o

Android lib库

libEGL.so
libETC1.so
libFFTEm.so
libGLESv1_CM.so
libGLESv2.so
libGLESv3.so
libJpegOal.so
libOpenMAXAL.so
libOpenSLES.so
libPQDCjni.so
libPQjni.so
libRS.so
libRSCacheDir.so
libRSCpuRef.so
libRSDriver.so
libRS_internal.so
libRScpp.so
libSurfaceFlingerProp.so
lib_remote_simlock.so
libaaudio.so
libaaudio_internal.so
libadbd_auth.so
libadbd_fs.so
libamidi.so
libandroid.so
libandroid_net.so
libandroid_runtime.so
libandroid_runtime_lazy.so
libandroid_servers.so
libandroidfw.so
libappfuse.so
libartpalette-system.so
libasyncio.so
libaudio-resampler.so
libaudio_param_parser-sys.so
libaudioclient.so
libaudiocomponentengine.so
libaudioeffect_jni.so
libaudioflinger.so
libaudiofoundation.so
libaudiohal.so
libaudiohal@2.0.so
libaudiohal@4.0.so
libaudiohal@5.0.so
libaudiohal@6.0.so
libaudiohal_deathhandler.so
libaudiomanager.so
libaudiopolicy.so
libaudioprocessing.so
libaudiospdif.so
libaudioutilmtk.so
libaudioutils.so
libbacktrace.so
libbase.so
libbcinfo.so
libbessound_hd_mtk.so
libbinder.so
libbinder_ndk.so
libblas.so
libblisrc.so
libbluetooth.so
libbluetooth_qti.so
libbpf.so
libbpf_android.so
libbufferhub.so
libbufferhubqueue.so
libc++.so
libc.so
libcamalgo_sys.autorama.so
libcamalgo_sys.cfb.so
libcamalgo_sys.hdr.so
libcamera2ndk.so
libcamera_client.so
libcamera_metadata.so
libcameraservice.so
libcampostalgo.so
libcampostalgo_featurepipe.so
libcampostalgo_interface.so
libcap.so
libcgrouprc.so
libchrome.so
libclang_rt.asan-arm-android.so
libclcore.bc
libclcore_debug.bc
libclcore_debug_g.bc
libclcore_g.bc
libclcore_neon.bc
libcodec2.so
libcodec2_client.so
libcodec2_hidl_client@1.0.so
libcodec2_hidl_client@1.1.so
libcodec2_vndk.so
libcompiler_rt.so
libcompress.so
libcomutils.so
libcrypto.so
libcrypto_utils.so
libcustom_jni.so
libcustom_prop.so
libcutils.so
libdataloader.so
libdatasource.so
libdcfdecoderjni.so
libdebuggerd_client.so
libdexfile_support.so
libdisp_dejitter.so
libdl.so
libdl_android.so
libdng_sdk.so
libdrm.so
libdrmframework.so
libdrmframework_jni.so
libdrmmtkutil.so
libdrmmtkwhitelist.so
libdynamic_depth.so
libem_audio_jni.so
libem_support_jni.so
libem_usb_jni.so
libem_wifi_jni.so
libevent.so
libexif.so
libexpat.so
libext2_blkid.so
libext2_com_err.so
libext2_e2p.so
libext2_uuid.so
libext2fs.so
libfdtrack.so
libfilterfw.so
libfilterpack_imageproc.so
libfmq.so
libfpspolicy_fw.so
libft2.so
libgatekeeper.so
libged_kpi.so
libged_sys.so
libgpud_sys.so
libgralloc_extra_sys.so
libgralloctypes.so
libgraphics_latency_helper_fwk.so
libgraphicsenv.so
libgui.so
libgui_debug.so
libhardware.so
libhardware_legacy.so
libharfbuzz_ng.so
libheif.so
libhidl-gen-utils.so
libhidlallocatorutils.so
libhidlbase.so
libhidlmemory.so
libhidltransport.so
libhwbinder.so
libhwui.so
libimage_io.so
libimg_utils.so
libimsma.so
libimsma_adapt.so
libimsma_rtp.so
libimsma_socketwrapper.so
libincfs.so
libinput.so
libinputflinger.so
libinputflinger_base.so
libinputreader.so
libinputreporter.so
libinputservice.so
libion.so
libiprouteutil.so
libjni_eglfence_mtk.so
libjni_pq.so
libjnigraphics.so
libjpeg-alpha-oal.so
libjpeg-alpha.so
libjpeg.so
libkeymaster4_1support.so
libkeymaster4support.so
libkeystore-attestation-application-id.so
libkeystore_aidl.so
libkeystore_binder.so
libkeystore_parcelables.so
liblayers_proto.so
libldacBT_abr.so
libldacBT_enc.so
liblog.so
liblzma.so
libm.so
libmdloggerrecycle.so
libmdnssd.so
libmedia.so
libmedia_codeclist.so
libmedia_helper.so
libmedia_jni.so
libmedia_jni_utils.so
libmedia_omx.so
libmedia_omx_client.so
libmediadrm.so
libmediadrmmetrics_consumer.so
libmediadrmmetrics_full.so
libmediadrmmetrics_lite.so
libmedialogservice.so
libmediametrics.so
libmediandk.so
libmediandk_utils.so
libmediaplayerservice.so
libmediatek_exceptionlog.so
libmediautils.so
libmeminfo.so
libmemoryDumpEncoder.so
libmemtrack.so
libmemunreachable.so
libminikin.so
libmtk_vt_service.so
libmtk_vt_wrapper.so
libmtkaudio_utils.so
libmtkavenhancements.so
libmtkperf_client.so
libmtp.so
libnativebridge_lazy.so
libnativecheck-jni.so
libnativedisplay.so
libnativeloader_lazy.so
libnativewindow.so
libnbaio.so
libnblog.so
libnetd_client.so
libnetdbpf.so
libnetdutils.so
libnetlink.so
libnetutils.so
libneuralnetworks_packageinfo.so
libneuropilot_hal_utils.so
libneuropilot_jni_R.so
libnwk_opt_halwrap.so
libpackagelistparser.so
libpcap.so
libpcre2.so
libpdfium.so
libpdx_default_transport.so
libperfctl.so
libpiex.so
libpng.so
libpostalgo.plugin.autorama.so
libpostalgo.plugin.fb.so
libpostalgo.plugin.hdr.so
libpostalgo_3rdparty.core.so
libpostalgo_3rdparty.customer.so
libpostalgo_3rdparty.mtk.so
libpostalgo_3rdparty.plugin.features.so
libpostalgo_3rdparty.so
libpostalgo_grallocutils.so
libpostalgo_imgbuf.so
libpostalgo_metadata.so
libpostalgo_stdutils.so
libpower.so
libpowerhalwrap.so
libpowerhalwrap_jni.so
libpowermanager.so
libprocessgroup.so
libprocinfo.so
libprotobuf-cpp-full.so
libprotobuf-cpp-lite.so
libprotoutil.so
libpsi.so
libradio_metadata.so
libresourcemanagerservice.so
librs_jni.so
librtp_jni.so
libschedulerservicehidl.so
libselinux.so
libsensor.so
libsensorprivacy.so
libsensorservice.so
libsensorservicehidl.so
libsf_debug.so
libsfplugin_ccodec.so
libsfplugin_ccodec_utils.so
libshowlogo.so
libsigchain.so
libsignal.so
libsink.so
libsonic.so
libsonivox.so
libsoundpool.so
libsource.so
libsparse.so
libspeexresampler.so
libsqlite.so
libssl.so
libstagefright.so
libstagefright_amrnb_common.so
libstagefright_bufferpool@2.0.1.so
libstagefright_bufferqueue_helper.so
libstagefright_codecbase.so
libstagefright_flacdec.so
libstagefright_foundation.so
libstagefright_framecapture_utils.so
libstagefright_http_support.so
libstagefright_httplive.so
libstagefright_omx.so
libstagefright_omx_utils.so
libstagefright_wfd_mtk.so
libstagefright_xmlparser.so
libstatshidl.so
libstatslog.so
libstdc++.so
libsurfaceflinger.so
libsuspend.so
libsync.so
libsysenv_system.so
libsysutils.so
libtextclassifier_hash.so
libtflite_mtk.so
libtflite_mtk_static_R.so
libtimeinstate.so
libtimestats.so
libtimestats_proto.so
libtinyalsa.so
libtinyxml2.so
libtombstoned_client.so
libudf.so
libui.so
libui_ext.so
libunwindstack.so
libusbhost.so
libutils.so
libutilscallstack.so
libvcodec_cap.so
libvcodec_capenc.so
libvibrator.so
libvintf.so
libvndksupport.so
libvsync_enhance.so
libvsync_hint.so
libvt_avsync.so
libvulkan.so
libwebviewchromium_loader.so
libwebviewchromium_plat_support.so
libwilhelm.so
libxml2.so
libyuv.so
libz.so
libziparchive.so

4、参考

关于libc++_shared.so 与libstdc++、libc++的链接关系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1636455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

es环境安装及php对接使用

Elasticsearch Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的…

【LeetCode】拓扑排序——课程表 I II

拓扑排序&#xff1a; AOV网&#xff1a;若用DAG图&#xff08;有向无环图&#xff09;表示一个工程&#xff0c;其顶点表示活动&#xff0c;用有向边<Vi, Vj>表示活动Vi必须先于活动Vj进行的这样一种关系&#xff0c;则将这种有向图称为顶点表示活动的网络&#xff0c;…

餐后血糖波动?学会在米饭里加两物

米饭里加两物&#xff0c;帮你平稳餐后血糖&#xff0c;餐后血糖稳稳的&#xff0c;别让你碗里的米饭太单调&#xff0c;搭着吃对血糖好。今天呢我教大家一招&#xff0c;在蒸米饭的时候&#xff0c;加上两种食材&#xff0c;能够改善餐后血糖。 第一就是在煮米饭的时候加点糙米…

C++多态(全)

多态 概念 调用函数的多种形态&#xff0c; 多态构成条件 1&#xff09;父子类完成虚函数的重写&#xff08;三同&#xff1a;函数名&#xff0c;参数&#xff0c;返回值相同&#xff09; 2&#xff09;父类的指针或者引用调用虚函数 虚函数 被virtual修饰的类成员函数 …

Systemback Ubuntu14.04 制作自定义系统ISO镜像

工作需要&#xff0c;要基于ubuntu自定义一些编译环境并将自己配置好的ubuntu做成镜像。 硬件准备 ​ 为保证能够顺利完成系统iso镜像的制作与系统还原&#xff0c;推荐准备一个较大容量的U盘或者移动固态硬盘&#xff0c;同时确保自己的Ubuntu系统还有比较大的可用空间。 1 S…

Maven入门:1.简介与环境搭建

一.简介与环境搭建 1.Maven&#xff1a;用于自动化构建项目&#xff08;按照企业主流模板构建完善的项目结构&#xff09;和管理项目依赖&#xff08;依赖就是项目的jar包&#xff0c;通过配置的方式进行添加和管理&#xff0c;自动下载和导入&#xff09;的工具。即更加方便构…

监视器和显示器的区别,普通硬盘和监控硬盘的区别

监视器与显示器的区别&#xff0c;你真的知道吗&#xff1f; 中小型视频监控系统中&#xff0c;显示系统是最能展现效果的一个重要环节&#xff0c;显示系统的优劣将直接影响视频监控系统的用户体验满意度。 中小型视频监控系统中&#xff0c;显示系统是最能展现效果的一个重要…

CSS 伪类、伪元素的应用实例:电池充电、高能进度条

一、目的 本文通过 CSS 伪类、伪元素&#xff0c;结合动画 animation 和 Vue 动态样式属性&#xff08;通过 CSS 变量&#xff09;的写法&#xff0c;来实现电池充电、高能进度条的效果&#xff0c;如下图所示。 二、基础知识 1、CSS 伪类、伪元素 简单概括成以下 4 点&#x…

JavaScript转换和校验数字

本节我们使用的案例还是继续之前的银行家应用程序&#xff0c;只不过我们呢增加了两个账号&#xff0c;代码如下&#xff1a; const account1 {owner: Jonas Schmedtmann,movements: [200, 455.23, -306.5, 25000, -642.21, -133.9, 79.97, 1300],interestRate: 1.2, // %pin…

Macos安装OrbStack

什么是OrbStack OrbStack 是一种在 macOS 上运行容器和 Linux 机器的快速、轻便和简单方法。它是 Docker Desktop 和 WSL 的超强替代品&#xff0c;所有这些都在一个易于使用的应用程序中。 在Macos M系列芯片上&#xff0c;经常遇到docker镜像不兼容的问题&#xff0c;此时使…

Git客户端(TortoiseGit)使用详解

1.概述 使用TortoiseGit比直接使用git 客户端和命令实现代码版本管理更为方便&#xff0c;本文根据实际使用情况作一些记录&#xff0c;特别是对于解决冲突的处理。 2.Git安装与配置 下载 Git - Downloads&#xff0c; 可参考Git安装步骤完成Git的安装与配置。 3.TortoiseG…

【最大公约数 排序】2344. 使数组可以被整除的最少删除次数

本文涉及知识点 最大公约数 排序 LeetCode2344. 使数组可以被整除的最少删除次数 给你两个正整数数组 nums 和 numsDivide 。你可以从 nums 中删除任意数目的元素。 请你返回使 nums 中 最小 元素可以整除 numsDivide 中所有元素的 最少 删除次数。如果无法得到这样的元素&a…

Java设计模式 _结构型模式_组合模式

一、组合模式 1、组合模式 组合模式&#xff08;Composite Pattern&#xff09;是这一种结构型设计模式。又叫部分整体模式。组合模式依据树形结构来组合对象&#xff0c;用来表示部分以及整体层次关系。即&#xff1a;创建了一个包含自己对象组的类&#xff0c;该类提供了修改…

校园二手|基于SprinBoot+vue的微信小程序的校园二手平台(源码+数据库+文档)

校园二手平目录 目录 基于SprinBootvue的微信小程序的校园二手平台 一、前言 二、系统设计 三、系统功能设计 1搜索功能、分类功能测试 2商品购买功能测试 3用户注册功能测试 4商品信息管理功能测试 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设…

【网站项目】木里风景文化管理平台

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

电脑装了两个Win10系统,怎么修改其名称方便识别?

前言 有小伙伴在上一期的双系统教程上留言说怎么修改双系统引导时候显示的名称 不然看起来两个系统好像都没啥分别&#xff0c;如果是Windows10Windows11的方案还好说&#xff0c;但如果是两个Windows10或者是两个Windows11&#xff0c;有时候还真的很不好分辨。 万一想要启动…

【stomp 实战】Spring websocket 用户订阅和会话的管理源码分析

通过Spring websocket 用户校验和业务会话绑定我们学会了如何将业务会话绑定到spring websocket会话上。通过这一节&#xff0c;我们来分析一下会话和订阅的实现 用户会话的数据结构 SessionInfo 用户会话 用户会话定义如下&#xff1a; private static final class Sessio…

第三节课,功能2:开发后端用户的管理接口-- postman--debug测试

一、如何使用postman 网址&#xff1a; https://www.postman.com/downloads/ 【Postman小白教程】五分钟学会如何使用Postman~_哔哩哔哩_bilibili postman安装使用_bowser agent在postman哪里-CSDN博客 二、下载后 登录&#xff0c;开始测试 2.1 关于postman 报错&#…

IOT-9608I-L 的GPIO应用

目录 概述 1 GPIO接口介绍 2 板卡上操作IO 2.1 查看IO驱动 2.2 使用ECHO操作IO 2.2.1 端口选择 2.2.2 查看IO 2.2.3 echo操作IO 3 C语言实现一个操作IO的案例 3.1 功能介绍 3.2 代码实现 3.3 详细代码 4 测试 测试视频地址&#xff1a; IOT-9608I-L的一个简单测试&a…

探索APP分发的新趋势 - 内容包括小猪APP分发平

APP分发探索APP分发的新趋势 - 内容包括小猪APP分发平台的重要性 APP分发是移动互联网的核心环节探索APP分发的新趋势 - 内容包括小猪APP分发平台&#xff0c;它链接探索APP分发的新趋势 - 内容包括小猪APP分发平台了开发者和用户探索APP分发的新趋势 - 内容包括小猪APP分发平…