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.mfbz.cn/a/586319.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java | Leetcode Java题解之第62题不同路径

题目&#xff1a; 题解&#xff1a; class Solution {public int uniquePaths(int m, int n) {long ans 1;for (int x n, y 1; y < m; x, y) {ans ans * x / y;}return (int) ans;} }

Python+PYGObject/PYGtk+CSS样式--2024python示例

隔久点不用老是会忘&#xff0c;留个笔记。。 PythonPYGObject/PYGtk&#xff0c;加载 CSS 样式的演示代码 demo 运行的效果截图&#xff1a; #!/usr/bin/env python3 import sys import gigi.require_version("Gtk", "3.0") from gi.repository import …

Web APIs 学习归纳5--- BOM浏览器对象

前面几节主要针对DOM进行了学习&#xff0c;现在开始新的内容的学习---DOM浏览器对象。 DOM是更注重页面&#xff08;document&#xff09;内容的设计&#xff0c;但是BOM不仅限于页面&#xff08;document&#xff09;的设计&#xff0c;而是更加全面包括页面的刷新&#xff0…

【小迪安全2023】第59天:服务攻防-中间件安全CVE复现lSApacheTomcatNginx

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

Taro引入echarts【兼容多端小程序(飞书/微信/支付宝小程序)】

近期接到公司新需求&#xff0c;开发飞书小程序&#xff0c;并且原型中含有大量的图表&#xff0c;本想使用飞书内置图表组件 —— chart-space&#xff0c;但官方表示已经停止维护了&#xff0c;无奈之下&#xff0c;只能另寻他路&#xff0c;于是乎&#xff0c;图表之王&…

Content type ‘application/json;charset=UTF-8‘ not supported异常的解决过程

1.首先说明开发场景 *就是对该json格式数据传输到后台 后台实体类 import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import org.sp…

CSS移动端弹性布局

一级标题 二倍图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>背景图片</title><styl…

LLM系列(4):通义千问7B在Swift/DeepSpeed上微调秘诀与实战陷阱避坑指南

LLM系列(4):通义千问7B在Swift/DeepSpeed上微调秘诀与实战陷阱避坑指南 阿里云于 2023年8 月 3 日开源通义千问 70 亿参数模型,包括通用模型 Qwen-7B 以及对话模型 Qwen-7B-Chat,这也是国内首个开源自家大模型的大厂。在诸多权威大模型能力测评基准上,如 MMLU、C-Eval、…

VSCode 配置 CMake

VSCode 配置 C/C 环境的详细过程可参考&#xff1a;VSCode 配置 C/C 环境 1 配置C/C编译环境 方案一 如果是在Windows&#xff0c;需要安装 MingW&#xff0c;可以去官网(https://sourceforge.net/projects/mingw-w64/)下载安装包。 注意安装路径不要出现中文。 打开 windows…

备忘录模式(行为型)

目录 一、前言 二、备忘录模式 三、总结 一、前言 备忘录模式(Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;这样可以在之后将该对象恢复到原…

搭建和配置Stable Diffusion环境,超详细的本地部署教程

跃然纸上的创意、瞬息万变的想象&#xff0c;Stable Diffusion以AI的力量赋予您无限创作可能。在这篇详尽的本地部署教程中&#xff0c;我们将携手走进Stable Diffusion的世界&#xff0c;从零开始&#xff0c;一步步搭建和配置这个强大的深度学习环境。无论您是热衷于探索AI艺…

Notes for the missing semester. Useful and basic knowledge about Linux.

The Shell Contents The first course is to introduce some simple commands. I’ll list some commands that I’m not familiar with: # --silent means dont give log info, # --head means we only want the http head. curl --head --silent bing.com.cn# cut --deli…

(7)快速调优

文章目录 前言 1 安装脚本 2 运行 QuikTune 3 高级配置 前言 VTOL QuikTune Lua 脚本简化了为多旋翼飞行器的姿态控制参数寻找最佳调整的过程。 脚本会缓慢增加相关增益&#xff0c;直到检测到振荡。然后&#xff0c;它将增益降低 60%&#xff0c;并进入下一个增益。所有增…

smac 路径优化器分析——距离成本和代价地图成本分析

参考 泰勒级数直观详解 前向差分&#xff0c;后向差分&#xff0c;中心差分 相关文章 smac 路径优化器分析——平滑度成本分析 smac 路径优化器分析——曲率成本分析 距离成本 距离成本函数 用优化后的点与原路径点的欧氏距离的平方作为成本。 下图中蓝色原点是原路径点…

java-springmvc 01 补充 javaweb 三大组件Servlet,Filter、Listener(源码都是tomcat8.5项目中的)

01.JavaWeb三大组件指的是&#xff1a;Servlet、Filter、Listener,三者提供不同的功能 这三个在springmvc 运用很多 Servlet 01.Servlet接口&#xff1a; public interface Servlet {/*** 初始化方法* 实例化servlet之后&#xff0c;该方法仅调用一次 * init方法必须执行完…

【MySQL | 第九篇】重新认识MySQL锁

文章目录 9.重新认识MySQL锁9.1MySQL锁概述9.2锁分类9.2.1锁的粒度9.2.2锁的区间9.2.3锁的性能9.2.4锁的级别 9.3拓展&#xff1a;意向锁9.3.1意向锁概述9.3.2意向锁分类9.3.3意向锁作用&#xff08;1&#xff09;意向锁的兼容互斥性&#xff08;2&#xff09;例子1&#xff08…

C++ | Leetcode C++题解之第61题旋转链表

题目&#xff1a; 题解&#xff1a; class Solution { public:ListNode* rotateRight(ListNode* head, int k) {if (k 0 || head nullptr || head->next nullptr) {return head;}int n 1;ListNode* iter head;while (iter->next ! nullptr) {iter iter->next;n…

CTFHub-Web-SQL注入

CTFHub-SQL注入-WP 1.整数型注入 1.题目说输入1&#xff0c;先将1输入查看结果 2.接着输入4-1&#xff0c;发现输出的结果为4-1&#xff0c;判定存在整数型注入 3.查询字段数&#xff0c;出现了回显&#xff0c;判断这里的字段数为2 1 order by 24.判断注入点在2的位置&…

imx6ull启动方式和镜像文件烧写

文章目录 前言一、BOOT启动方式1.串行下载2.内部BOOT模式 二、内部BOOT模式详细流程1.启动设备的选择2.镜像烧写 总结 前言 &#x1f4a6; I.MX6Ull 支持多种启动方式以及启动设备&#xff0c;比如可以从 SD/EMMC、NAND Flash、QSPI Flash等启动。用户可以根据实际情况&#x…

【docker】Docker开启远程访问

将构建的镜像自动上传到服务器。 需要开放 Docker 的端口&#xff0c;让我们在本地能连接上服务器的 Docker&#xff0c;这样&#xff0c;才能上传构建的镜像给 Docker。 开启远程访问 首先在服务器打开 Docker 的服务文件 vim /usr/lib/systemd/system/docker.service修改…
最新文章