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

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

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.hqwc.cn/news/661134.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

227. 基本计算器 II

227. 基本计算器 II 原题链接:完成情况:解题思路:参考代码:_227基本计算器II_单栈直接算_227基本计算器II_双栈 错误经验吸取 原题链接: 227. 基本计算器 II https://leetcode.cn/problems/basic-calculator-ii/ 完…

ubuntu入门

基础命令 cd 切换命令 ls 查看当前目录下所有的文件 cp a.c b.c 拷贝a.c 到 b.c touch a.c 创建a.c文件 mkdir file 创建文件夹file rm file 删除文件 rmdir 删除test文件夹 rmdir test/ mv 移动文件 mv a.c b.c 把a.c 替换成b.c ifconfig 查看电脑网络信息 rm xx 删…

C/C++基础语法练习 - ASCII码(新手推荐阅读✨)

题目链接:https://www.starrycoding.com/problem/159 题目描述 给一个仅包含大小写字母和数字的字符串,请输入它的每个字符对应的ASCII码。 输入格式 一行输入一个字符串 S ( 1 ≤ ∣ S ∣ ≤ 1000 ) S(1 \le |S| \le 1000) S(1≤∣S∣≤1000)。 输…

在Ubuntu linux操作系统上操作MySQL数据库常用的命令

检查是否安装了MySQL,或检查MySQL的状态: sudo systemctl status mysql或 sudo systemctl status mysql.service如果mysql有安装,上面这条命令会返回mysql的状态active或inactive。 卸载mysql数据库 第一步是停了数据库: sud…

精通GDBus:Linux IPC的现代C接口

目录标题 1. GDBus介绍2. GDBus的优点3. 安装GDBus4. 使用GDBus连接到D-Bus总线实现D-Bus服务调用D-Bus方法发送和接收信号 5. 总结 在Linux环境下,不同的程序需要通过某种方式进行通信和协同工作。GDBus是GLib库的一部分,提供了一个基于GObject系统的、…

typescript:vscode的settings配置文件配置ts语法提示

typescript:vscode的settings配置文件配置ts语法提示 1 找到vscode左下角的齿轮按钮 2 点击Settings(或者快捷键ctrl,): 点击右上角的Open Settings(JSON)按钮打开配置文件: 或者ctrlshiftp,搜索settings&…

Spring - 9 ( 10000 字 Spring 入门级教程 )

一: MyBatis XML 配置文件 Mybatis 的开发有两种方式: 注解XML 我们已经学习了注解的方式, 接下来我们学习 XML 的方式 MyBatis XML 的方式需要以下两步: 配置数据库连接字符串和 MyBatis写持久层代码 1.1 配置连接字符串和 MyBatis 此步骤需要进…

2024.阳光能源追光计划暨大陆考察团交流分享会

近日大陆考察团抵达香港,受到了本司热情接待和安排。公司于4月27日下午举办了阳光能源追光计划主题交流会。 会上公司营销部总监张超,分享了阳光能源近几年的能源发展之路及公司新推出的追光计划,得到了大陆考察交流团团长杨国均先生的高度赞…

【自研网关系列】过滤器链 -- 灰度发布过滤器

🌈Yu-Gateway::基于 Netty 构建的自研 API 网关,采用 Java 原生实现,整合 Nacos 作为注册配置中心。其设计目标是为微服务架构提供高性能、可扩展的统一入口和基础设施,承载请求路由、安全控制、流量治理等…

LLM应用:让大模型prompt总结生成Mermaid流程图

生成内容、总结文章让大模型Mermaid流程图展示: mermaid 美人鱼, 是一个类似 markdown,用文本语法来描述文档图形(流程图、 时序图、甘特图)的工具,您可以在文档中嵌入一段 mermaid 文本来生成 SVG 形式的图形 Prompt 示例:用横向…

【机器学习-19】集成学习---投票法(Voting)

一、引言 集成学习(Ensemble Learning)是机器学习领域中的一种重要策略,它通过结合多个模型的预测结果来提高整体性能。在单个模型容易过拟合或欠拟合的情况下,集成学习能够通过综合多个模型的优点来减少这种风险,从而…

第9篇:创建Nios II工程之读取Switch的值<二>

Q:上一期我们完成了Quartus硬件工程部分,本期我们创建Nios II软件工程这部分。 A:创建完BSP和Nios II Application之后,在source文件main.c中添加代码:system.h头文件中新增了Switch PIO IP的硬件信息,包括…