Android.mk与Linux Makefile研究心得

本文详细分析了Android NDK中libstdc++.a和libstdc++.so的编译过程,包括从源码编译到静态库和动态库的步骤,涉及头文件路径、编译选项和链接过程。同时讨论了Android.mk文件及其转换为Linux Makefile的方法。
摘要由CSDN通过智能技术生成
一、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=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值