Android底层连接库的编译过程及其Android NDK开发实例

在android-ndk上编译boost库及其C/C++程序 1. 简介   最近,项目的需求——将原本运行在Linux的上C/C++移植到Android上运行。折腾了3天,终于可以编译出使用了boost库的可执行程序。这边主要是记录下,并分享出来,供需要的人员参考。如果有什么问题可以在下面评论或发私信。 2. android-ndk在Linux上的安装   博主的ndk版本是从底层的驱动人员那边获取的。这边使用的ndk版本是:android-ndk3 阅读详情

一、 Android 静态库编译

target thumb C: libc <= bionic/libc/bionic/libc_init_static.c

prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc  

-I system/core/include  

-I hardware/libhardware/include 

-I hardware/libhardware_legacy/include  

-I hardware/ril/include  

-I dalvik/libnativehelper/include  

-I frameworks/base/include  

-I frameworks/base/opengl/include  

-I external/skia/include  

-I out/target/product/generic/obj/include  

-I bionic/libc/arch-arm/include  

-I bionic/libc/include  

-I bionic/libstdc++/include  

-I bionic/libc/kernel/common  

-I bionic/libc/kernel/arch-arm  

-I bionic/libm/include  

-I bionic/libm/include/arch/arm  

-I bionic/libthread_db/include  

-I bionic/libc/stdlib  

-I bionic/libc/string  

-I bionic/libc/stdio  

-I bionic/libc  

-I out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates  -c  -fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -march=armv5te -mtune=xscale  -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5TE__

-include system/core/include/arch/linux-arm/AndroidConfig.h

-I system/core/include/arch/linux-arm/ -mthumb-interwork -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Werror=return-type -DSK_RELEASE -DNDEBUG -g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -DNDEBUG -UDEBUG -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64  -DWITH_ERRLIST -DANDROID_CHANGES -DUSE_LOCKS -DREALLOC_ZERO_BYTES_FREES -D_LIBC=1 -DSOFTFLOAT -DFLOATING_POINT -DNEED_PSELECT=1 -DINET6 -Ibionic/libc/private  -fstrict-aliasing    -MD

-o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/libc_init_static.o bionic/libc/bionic/libc_init_static.c

 

target thumb C: libc <= bionic/libc/arch-arm/bionic/exidx_static.c

prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc 

-I system/core/include  

-I hardware/libhardware/include  

-I hardware/libhardware_legacy/include  

-I hardware/ril/include  

-I dalvik/libnativehelper/include  

-I frameworks/base/include 

-I frameworks/base/opengl/include  

-I external/skia/include  

-I out/target/product/generic/obj/include  

-I bionic/libc/arch-arm/include  

-I bionic/libc/include  

-I bionic/libstdc++/include  

-I bionic/libc/kernel/common  

-I bionic/libc/kernel/arch-arm  

-I bionic/libm/include   -

I bionic/libm/include/arch/arm  

-I bionic/libthread_db/include  

-I bionic/libc/stdlib  

-I bionic/libc/string  

-I bionic/libc/stdio  

-I bionic/libc  

-I out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates  -c  -fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -march=armv5te -mtune=xscale   -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5TE__

-include system/core/include/arch/linux-arm/AndroidConfig.h

-I system/core/include/arch/linux-arm/ -mthumb-interwork -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -Werror=return-type -DSK_RELEASE -DNDEBUG -g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -DNDEBUG -UDEBUG -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64  -DWITH_ERRLIST -DANDROID_CHANGES -DUSE_LOCKS -DREALLOC_ZERO_BYTES_FREES -D_LIBC=1 -DSOFTFLOAT -DFLOATING_POINT -DNEED_PSELECT=1 -DINET6 -Ibionic/libc/private  -fstrict-aliasing    -MD

-o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/exidx_static.o bionic/libc/arch-arm/bionic/exidx_static.c

 

target StaticLib: libc (out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/libc.a)

prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-ar

crs  out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/libc.a out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/_exit.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/_exit_thread.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__fork.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/waitid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__clone.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/execve.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setuid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getuid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getgid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/geteuid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getegid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getresuid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getresgid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/gettid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getgroups.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getpgid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getppid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setsid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setgid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setreuid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setresuid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setresgid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__brk.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__ptrace.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__getpriority.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setpriority.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setrlimit.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getrlimit.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getrusage.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setgroups.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setpgid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/vfork.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setregid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/chroot.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/prctl.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/capget.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/capset.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/acct.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/read.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/write.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__pread64.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__pwrite64.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__open.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__openat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/close.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/lseek.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__llseek.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getpid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__mmap2.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/munmap.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/mremap.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/msync.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/mprotect.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/madvise.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/mlock.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/munlock.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/mincore.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__ioctl.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/readv.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/writev.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__fcntl.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/flock.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fchmod.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/dup.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/pipe.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/dup2.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/select.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/ftruncate.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getdents.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fsync.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fchown.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sync.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__fcntl64.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fstatfs.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sendfile.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fstatat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/mkdirat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fchownat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fchmodat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/renameat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/link.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/unlink.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/unlinkat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/chdir.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/mknod.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/chmod.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/chown.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/lchown.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/mount.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/umount2.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fstat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/stat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/lstat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/mkdir.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/readlink.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/rmdir.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/rename.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__getcwd.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/access.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/symlink.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/fchdir.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/truncate.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__statfs64.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/pause.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/gettimeofday.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/settimeofday.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/times.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/nanosleep.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/clock_gettime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/clock_settime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/clock_getres.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/clock_nanosleep.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getitimer.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setitimer.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__timer_create.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__timer_settime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__timer_gettime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__timer_getoverrun.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__timer_delete.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/utimes.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sigaction.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sigprocmask.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__sigsuspend.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__rt_sigaction.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__rt_sigprocmask.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__rt_sigtimedwait.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sigpending.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/socket.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/socketpair.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/bind.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/connect.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/listen.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/accept.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getsockname.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getpeername.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sendto.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/recvfrom.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/shutdown.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/setsockopt.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/getsockopt.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sendmsg.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/recvmsg.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sched_setscheduler.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sched_getscheduler.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sched_yield.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sched_setparam.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sched_getparam.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sched_get_priority_max.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sched_get_priority_min.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/sched_rr_get_interval.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/uname.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__wait4.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/umask.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__reboot.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__syslog.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/init_module.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/delete_module.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/klogctl.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/futex.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/epoll_create.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/epoll_ctl.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/epoll_wait.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/inotify_init.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/inotify_add_watch.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/inotify_rm_watch.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/poll.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/__set_tls.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/syscalls/cacheflush.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/__get_pc.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/__get_sp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/_exit_with_stack_teardown.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/_setjmp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/atomics_arm.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/clone.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/ffs.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/kill.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/tkill.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/memcmp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/memcmp16.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/memcpy.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/memset.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/setjmp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/sigsetjmp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/syscall.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/memmove.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_state.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/strlen.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/pthread.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/pthread-timers.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/ptrace.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/abort.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/alarm.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/brk.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/creat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/daemon.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/exec.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/fcntl.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/fnmatch.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/ftime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/ftok.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/getcwd.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/getdtablesize.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/gethostname.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/getopt_long.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/getpgrp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/getpriority.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/getpt.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/initgroups.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/isatty.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/issetugid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/lseek64.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/mmap.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/nice.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/open.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/openat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/opendir.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/pathconf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/perror.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/popen.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/pread.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/pselect.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/ptsname.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/ptsname_r.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/pwrite.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/raise.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/reboot.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/recv.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/sbrk.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/send.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/setegid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/seteuid.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/setpgrp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/sigblock.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/siginterrupt.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/siglist.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/signal.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/sigsetmask.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/sigsuspend.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/sigwait.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/sleep.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/statfs.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/strsignal.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/sysconf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/syslog.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/system.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/tcgetpgrp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/tcsetpgrp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/time.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/umount.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/unlockpt.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/usleep.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/wait.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/asprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/clrerr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fclose.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fdopen.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/feof.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/ferror.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fflush.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fgetc.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fgetln.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fgetpos.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fgets.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fileno.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/findfp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/flags.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/flockfile.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fopen.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fpurge.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fputc.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fputs.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fread.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/freopen.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fscanf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fseek.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fsetpos.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/ftell.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/funopen.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fvwrite.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fwalk.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/fwrite.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/getc.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/getchar.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/gets.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/makebuf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/mktemp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/printf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/putc.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/putchar.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/puts.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/putw.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/refill.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/remove.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/rewind.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/rget.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/scanf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/setbuf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/setbuffer.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/setvbuf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/snprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/sprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/sscanf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/stdio.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/tempnam.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/tmpfile.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/tmpnam.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/ungetc.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/vasprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/vfprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/vfscanf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/vprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/vsnprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/vsprintf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/vscanf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/vsscanf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/wbuf.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdio/wsetup.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/_rand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/assert.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/atexit.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/atoi.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/atol.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/atoll.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/bsearch.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/ctype_.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/div.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/exit.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/getenv.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/jrand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/ldiv.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/lldiv.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/locale.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/lrand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/mrand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/nrand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/putenv.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/qsort.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/seed48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/setenv.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/setjmperr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/srand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strntoimax.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strntoumax.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strtod.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strtoimax.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strtol.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strtoll.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strtoul.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strtoull.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/strtoumax.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/tolower_.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/toupper_.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/stdlib/wchar.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/bcopy.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/index.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/memccpy.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/memchr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/memmem.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/memrchr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/memswap.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strcasecmp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strcasestr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strcat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strchr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strcmp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strcoll.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strcpy.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strcspn.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strdup.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strerror.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strerror_r.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strlcat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strlcpy.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strncat.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strncmp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strncpy.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strndup.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strnlen.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strpbrk.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strrchr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strsep.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strspn.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strstr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strtok.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strtotimeval.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/string/strxfrm.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/inet/bindresvport.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/inet/inet_addr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/inet/inet_aton.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/inet/inet_ntoa.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/inet/inet_ntop.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/inet/inet_pton.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/tzcode/asctime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/tzcode/difftime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/tzcode/localtime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/tzcode/strftime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/tzcode/strptime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/__errno.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/__set_errno.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/_rand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/arc4random.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/basename.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/basename_r.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/dirname.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/dirname_r.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/drand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/erand48.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/fork.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/if_nametoindex.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/if_indextoname.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/ioctl.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/ldexp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/libc_init_common.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/logd_write.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/md5.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/pututline.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/realpath.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/semaphore.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/sha1.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/ssp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/stubs.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/system_properties.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/time64.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/thread_atexit.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/utime.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/utmp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/gethnamaddr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/isc/ev_timers.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/isc/ev_streams.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/inet/nsap_addr.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/__dn_comp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/__res_close.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/__res_send.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/herror.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_comp.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_data.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_debug.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_init.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_mkquery.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_query.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_send.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/resolv/res_cache.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/net/nsdispatch.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/net/getaddrinfo.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/net/getnameinfo.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/net/getservbyname.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/net/getservent.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/net/base64.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/net/getservbyport.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/nameser/ns_name.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/nameser/ns_parse.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/nameser/ns_ttl.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/nameser/ns_netint.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/nameser/ns_print.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/netbsd/nameser/ns_samedomain.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/eabi.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/unistd/socketcalls.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/dlmalloc.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/bionic/libc_init_static.o out/target/product/generic/obj/STATIC_LIBRARIES/libc_intermediates/arch-arm/bionic/exidx_static.o

二、 Android 动态库编译

 

三、 Android 可执行文件 ( 命令 ) 编译

1 、单纯可执行文件编译

2 、包含连接库的可执行文件编译

 

四、 Android Java 工程编译

 

五、使用 Android NDK 开发实例

 

 

了解安卓,了解JDK、SDK、NDK,了解gradle Android是一个开源的,基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑。 阅读详情

相关推荐

Android studio中NDK开发(一)——使用CMake构建NDKDemo

一、前言 NDK可以支持使用C/C++来编写Android程序,不但可以引入C/C++中优秀的库资源,而且在使用底层的C/C++来处理一些复杂的运算效率更高,并且可以方便跨平台移植。本篇主要以CMake的方式来构建NDK,主要以最常规的方式创建一个NDKImportDemo,并对自动创建官方例子进行分析构建的过程以及CMakeLists.txt构建文件的配置。   二、准备 1、检查And...

Xiongjiayo的博客 2619

make: *** [out/target/common/obj/APPS/QuickSearchBox_intermediates/with-local/classes.dex] 错误 41

Ubuntu下编译Android源码时报错   target thumb C++: libv8 &lt;= out/target/product/generic/obj/STATIC_LIBRARIES/libv8_intermediates/experimental-libraries.cc target thumb C++: libv8 &lt;= out/target/product/g...

羽吉公 2613

Android Studio NDK开发案例一 JNI开发入门

        最近在做Android的项目,用到了JNI,现将NDK的开发流程和方法整理出来,希望能够让刚接触的小伙伴们少走一些弯路。 NDK         Native Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。 JNI         Java Native In...

他乡&学子 3248

Android源代码编译命令m/mm/mmm/make分析

在前文中,我们分析了Android编译环境的初始化过程。Android编译环境初始化完成后,我们就可以用m/mm/mmm/make命令编译源代码了。当然,这要求每一个模块都有一个Android.mk文件。Android.mk实际上是一个Makefile脚本,用来描述模块编译信息。Android编译系统通过整合Android.mk文件完成编译过程。本文就对Android源代码的编译过程进行详细分析...

xiaoheliushuiya 1085

Opengl ES 1.x NDK实例开发之一:搭建开发框架

大家好,我是无敌兔,从这一章开始

give me five 4369

Android NDK 开发

定义:NDK 是 Android SDK 的补充工具集,用于将 C/C++ 代码编译成.so(Shared Object,共享库)文件,供 Android 应用(Java/Kotlin)调用。核心作用复用现有 C/C++ 代码(如算法库、游戏引擎、硬件驱动)。提升性能敏感场景(如实时渲染、音视频处理、加密计算)的执行效率。访问 Android 平台的底层 API(如 OpenSL ES 音频、OpenGL ES 图形、传感器)。适用场景高性能计算(如数学建模、图像处理)。

weixin_39789947的博客 1071

c/c++编译器配置(交叉编译重要参数)、交叉编译动态库与as配置、mk初步

gcc/g++/clang,相当于javac: 了解c/c++编译器的基本使用,能够在后续移植第三方框架进行交叉编译时,清楚的了解应该传递什么参数。 clang: clang 是一个C、C++、Object-C的轻量级编译器。基于LLVM(LLVM是以C++编写而成的构架编译器的框架系统,可以说是一个用于开发编译器相关的库) gcc: GNU C编译器。原本只能处理C语言,很快...

weixin_30788239的博客 675

安卓NDK开发流程(适合新手学习)

为什么需要用到DNK(也就是jni)?因为安卓有很多功能是实现不了的,尤其是和底层硬件交互的一些操作,比如打印操作,直接用安卓连接底层打印机,就很难实现,但是用C就可以和硬件交互,这个时候就需要用安卓去调用C语音的方法,然后C再和底层硬件交互 OK,言归正传,看一下NDK的简单开发流程(确保自己可以把NDK操作完整地跑一边,就基本上可以明白DNK的作用了) 第一步:下载ndk以及配置ndk路径...

qq_35945801的博客 718

android studio NDK配置BUG问题

切换到studio后不久,项目集成了一个NDK的model,结果作为唯一window环境下的android工程师发现鸭梨山大,折腾了3个小时都没搞定. 错误如下所示: make.exe: *** No rule to make target `E:\works\repertory\android\code\dev_trunk\gpuimage\build\intermediates\ndk\r

somatezyc的专栏 5491

Android NDK秘籍--编译静态库、调用静态库

此篇文章的目的: 将C/C++的源码直接编译成静态库,只能提供给底层调用。 注:比较适用于将第三方开源库编译成静态库,也可以将自己写的源码编译成静态库,给自己或其他人的底层调用。 本文目录: 1.开发环境配置 2.编译静态库方法 3.调用静态库方法 4.示例 1.开发环境配置 环境配置: 开发工具:Android Studio 3.0.1 Android SDK T...

weixin_43901866的博客 1105

【图数据库与知识图谱入门】2.2 图数据库 vs. 关系型数据库 vs. NoSQL数据库

本文对比了关系型数据库、NoSQL数据库和图数据库的核心差异与应用场景。关系型数据库以二维表结构为核心,适合结构化数据的事务处理(如MySQL),但多表关联查询性能随层级增加而下降。NoSQL数据库(如MongoDB)具有灵活schema,适合海量非结构化数据存储,但关联查询能力较弱。图数据库专注于节点-边关系建模,擅长处理复杂关联分析(如社交网络)。通过学生-课程案例展示了MySQL的多表JOIN操作和MongoDB的两种关联实现方式(内嵌文档和文档引用),揭示了不同数据库在数据关联处理上的本质区别。

kngines 1542

10.sprd背光流程

Android 背光流程小结 现在使用aidl方式: /hardware/interfaces/light/aidl/android/hardware/light/ILights.aidl 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27.

chylovecsd的博客 1568

告别Keil!用VSCode+PlatformIO玩转STC单片机(附自动下载配置)

本文详细介绍了如何从Keil迁移到VSCode+PlatformIO进行STC单片机开发,包括环境搭建、自动下载配置等实用技巧。通过对比传统IDE与现代工具链的差异,展示了VSCode+PlatformIO在代码编辑体验、跨平台支持和开发效率上的优势,帮助开发者实现更流畅的STC单片机开发流程。

weixin_27252001的博客 458

linux 编译底层库,Android底层连接库的编译过程及其Android NDK开发实例

一、 Android 静态库编译target thumb C: libc <= bionic/libc/bionic/libc_init_static.cprebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc-I system/core/include-I hardware/libhardware/include-I hard...

weixin_39550410的博客 244

深入理解C语言内存管理:堆与栈的区别

栈是一种遵循后进先出(LIFO)原则的数据结构。在程序中,栈用于存储局部变量、函数的参数以及函数调用时的返回地址等信息。栈的内存管理由操作系统自动进行,每次函数调用时都会在栈上分配一块内存区域,函数执行完毕后,该内存区域会自动释放。在C语言中,堆与栈是两种不同的内存分配方式,各自有着不同的特点和适用场景。栈内存自动管理,访问速度快,但大小有限,适用于存储局部变量和函数调用信息。堆内存由程序员手动管理,适用于存储动态数据结构,大小不受限制,但访问速度较慢,容易导致内存泄漏等问题。

set_one的博客 1582

C#实战:如何用winmm.dll打造毫秒级高精度定时器(附完整代码)

本文详细介绍了在C#中利用winmm.dll实现毫秒级高精度定时器的完整方案。针对.NET内置定时器精度不足的问题,通过调用timeSetEvent等原生API,提供了超越系统时钟中断周期的精准定时能力。文章包含核心原理剖析、完整的封装类代码以及音视频处理、游戏开发等场景下的实战应用与性能调优指南。

ujm5678901的博客 690

Android Studio之NDK开发

Android Studio之NDK开发 一、 前言 NDK全称是Native Development Kit,是Android提供的一个开发工具包,能够快速将开发的C,C++的动态库,协议软件包,以及优秀的软件工具,用so和应用打包成APK,自由地在Android上运行。而NDK开发工具,就是将C/C++程序,编译成为Android环境可运行的程序,再者,通过NDK实现Android中实现JNI编程。那么JNI又是啥呢?JNI的全称是Java Native Interface,即Java的本地接口,JNI

yinshenk的博客 1万+

weblogic启动异常故障处理(boot认证失败)

root 用户生成的文件属主为 root,WebLogic进程将无权读取,直接导致认证失败。· ⚠️ 密码必须完全一致:第3步 AdminAccount 命令中设置的密码,与第5步所有 boot.properties 文件中 password= 字段的值,必须保证完全一致。如果您的域下配置了受管服务器实例(如 ms_server1、ms_server2 等),必须逐一更新各实例下的免密启动文件,确保实例重启时密码与AdminServer保持一致,否则实例启动会因认证失败而报错。此步骤至关重要,必须执行。

weixin_53389944的博客 222

ndk编译boost库

1. 简介   最近,项目的需求——将原本运行在Linux的上C/C++移植到Android上运行。折腾了3天,终于可以编译出使用了boost库的可执行程序。这边主要是记录下,并分享出来,供需要的人员参考,希望对大家有所帮助。如果有什么问题可以在下面评论或发私信。 2.android-ndk在Linux上的安装   博主的ndk版本是从底层的驱动人员那边获取的。这边使用的ndk版本是:android-ndk32-r10b-linux-x86。如果你使用的版本不一致也没什么关系,一般差异不会太大,只需要稍作.

桃之夭夭的博客 1219

【AI气象6】Skilful nowcasting of extreme precipitation with NowcastNet

极端降水是气象灾害的重要因素,因此迫切需要通过高分辨率、长时间预报和局部细节的精准短期预报来减轻其社会经济影响。当前的方法存在模糊、衰减、强度或位置误差,基于物理的数值方法在捕捉关键的混沌动态(如对流起始)时面临挑战,而数据驱动的学习方法则未能遵循内在的物理法则(如平流守恒)。我们提出了 NowcastNet,这是一种针对极端降水的非线性短期预报模型,将物理演变方案与条件学习方法统一到一个端到端的神经网络框架中,通过优化预测误差进行训练。基于来自美国和中国的雷达观测数据,我们的模型能够生成物理上合理的降水短

weixin_51473374的博客 2325

Python 爬虫实战:Steam 游戏数据爬取与游戏市场分析

本文介绍了一个基于Python的Steam游戏数据分析项目。通过爬取Steam公开API和游戏详情页,获取游戏列表、价格、评价、标签等数据,结合SteamSpy统计销量和在线人数。项目使用requests、BeautifulSoup4进行数据采集,pandas处理数据,pyecharts和seaborn进行可视化。核心步骤包括:1)获取全量游戏列表并过滤;2)异步请求游戏详情处理限速;3)提取关键字段如价格、评分、标签;4)多维分析价格分布、标签热度等。技术栈涵盖API请求、HTML解析、数据存储与可视化,

u014481728的博客 306

Android NDK编译C/C++为so共享对象

介绍了NDK、JNI、.so共享对象的概念,以及通过NDK将C/C++编译为.so的流程。

Kw学编程 1万+

【异常】OpenClaw 项目 `fetch failed` 报错问题排查与解决方案Response interrupted: TypeError: fetch failed

针对无超时控制、异常兜底缺失导致的请求中断,封装标准化的安全请求工具,一次性解决超时控制、异常捕获、日志埋点三大问题,全项目替换原生。:将项目运行的 Node.js 版本升级至 18.x 及以上 LTS 版本,使用 Node.js 内置的稳定版。实现的网络请求环节,包括但不限于:第三方开放接口调用、内部服务接口通信、跨域资源请求、外部配置拉取等场景。:针对无法升级 Node.js 版本的存量环境,通过社区稳定兼容包替换原生。类型异常,直接造成业务请求响应中断。第二步:业务代码改造,替换原生。

奶爸的编程之路,也就一周冷个三天 367

Android NDK开发实战之环境搭建篇(so库,Gemini ai)

音视频安卓开发首先涉及到ffmpeg编译打包,先了解动态库之间的cpu架构差异性。然后再搭建可运行的Android 环境。

weixin_50873490的博客 1531

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Android NDK如何访问底层接口

这两天在看了一下NDK相关知识 工作需要提供访问底层韦根的接口 看了很多博客 都写的表里不一 要么就太过简便 这是非常痛苦的 趁有时间 就记录下 我所做的实例 1 首先配置NDK 创建一个android 项目 打开AS 如果没有下载NDK 则点击下载 2 在电脑系统环境Path 添加NDK的目录 然后打开命令窗口 输入ndk-build 如下表示配置成功 3 新建一个本地方...

科技改变社会 1339

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Easy系列的安卓Android ndk编译EasyRTSPClient、EasyRTMPClient、EasyPusher、EasyRTMP、EasyIPCamera底层ndk so的流程记录

这是一篇开发的日常记录,现在发现做备忘越来越很重要了,一件事情几个月前做的,再次重新做一遍,尤其是这类的环境搭建,整个过程的坑又得重新跳一遍,太耗时了,这次先大概记录下来,方便后续回溯: 一、NDK选择 Windows采用的是:android-ndk-r13b-windows-x86_64; Linux采用的是:android-ndk-r13-linux-x86_64 二、静态库交叉编...

Babosa的专栏 830

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: linux连接库编译过程分析
下一篇: ADS1.2+GNUWinMake编译arm测试工程
sanlinux
博客等级 码龄17年 92粉丝 158原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值