Android NDK 17(我也假设是早期版本),包含libgcc.a
的多个版本:
android-ndk-r17b/toolchains/arm-linux-androideabi-4.9$ find -iname
libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/hard/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/armv7-a/thumb/hard/libgcc.a
./prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/thumb/libgcc.a
与libatomic.a
android-ndk-r17b/toolchains/arm-linux-androideabi-4.9$ find -iname libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/hard/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/thumb/hard/libatomic.a
./prebuilt/linux-x86_64/arm-linux-androideabi/lib/thumb/libatomic.a
每个包含目录的确包含全套crtbegin.o
,crtend.o
等...
$ ls ./prebuilt/linux-x86_64/arm-linux-androideabi/lib/armv7-a/
crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o libgcc.a libgcov.a
检查每一个,它们的大小是不同的(我认为是内容)。
.so
文件?答案 0 :(得分:2)
thumb
是指指令集(大多数ARM处理器具有不同的运行时可切换操作模式,这些模式可为您提供不同的指令集)。非拇指大概意味着arm
。hard
是指ABI变量,它确定如何将浮点参数传递给函数(现已弃用AFAIK)。armv7-a
的库大概是针对现在不推荐使用的armeabi
(即ARMv5TE)。