一、Android NDK中列出的部分库文件:
|-- crtbegin_dynamic.o
|-- crtbegin_static.o
|-- crtend_android.o
|-- libc.a
|-- libc.so
|-- libdl.so
|-- liblog.so
|-- libm.a
|-- libm.so
|-- libstdc++.a
|-- libstdc++.so
|-- libthread_db.a
|-- libthread_db.so
`-- libz.so
二、libstdc++.a编译过程分析
$ ar x libstdc++.a
libstdc++.a
|-- new.o
|-- one_time_construction.o
|-- pure_virtual.o
`-- typeinfo.o
target thumb C++: libstdc++ <= bionic/libstdc++/src/one_time_construction.cpp
prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-g++ -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/libstdc++ -I out/target/product/generic/obj/STATIC_LIBRARIES/libstdc++_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 -fvisibility-inlines-hidden -Werror=return-type -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -fno-rtti -MD -o out/target/product/generic/obj/STATIC_LIBRARIES/libstdc++_intermediates/src/one_time_construction.o bionic/libstdc++/src/one_time_construction.cpp
target thumb C++: libstdc++ <= bionic/libstdc++/src/new.cpp
prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-g++ -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/libstdc++ -I out/target/product/generic/obj/STATIC_LIBRARIES/libstdc++_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 -fvisibility-inlines-hidden -Werror=return-type -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=
Android.mk与Linux Makefile研究心得
最新推荐文章于 2022-07-24 10:41:33 发布
本文详细分析了Android NDK中libstdc++.a和libstdc++.so的编译过程,包括从源码编译到静态库和动态库的步骤,涉及头文件路径、编译选项和链接过程。同时讨论了Android.mk文件及其转换为Linux Makefile的方法。
摘要由CSDN通过智能技术生成