Linux下 .o .a .so .mk 文件说明
2016-09-11 11:22
609 查看
.o、.a、.so文件都是Linux下的程序函数库,【即编译好的可以供其他程序使用的代码和数据】。 优点:程序模块化,容易重新编译,方便升级。 分类: .o文件 动态加载函数库(对应.o文件,一个.c或.cpp文件对应一个.o文件 相当于Windows里的.obj文件) .a文件静态函数库(对应.a文件 好多个.o合在一起,用于静态连接 多个.a可以链接生成一个out可执行文件 对应windows的exe可执行文件) .so共享函数库(对应.so文件,类似于Windows的dll文件) ---------------------------1.c↓------------------------------ #include <stdio.h> #include<limits.h> void main(){ printf("\n%d", sizeof(int)); printf("\n%d", sizeof(short)); printf("\n%d", sizeof(double)); signed short num = SHRT_MAX; unsigned short numm = USHRT_MAX; printf("%d,%d", sizeof(signed short), sizeof(unsigned short)); printf("\n%d,%d", num, numm); unsigned short x = 65535 + 1 + 1; printf("%d", x); printf("\n..............", x); } -----------------------------1.c↑------------------------- ---------------------------Android.mk↓--------------------------- LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES += 1.c LOCAL_MODULE := zzjtestA include $(BUILD_HOST_STATIC_LIBRARY) -----------------------------Android.mk↑--------------------------- BUILD_HOST_STATIC_LIBRARY BUILD_HOST_SHARED_LIBRARY BUILD_STATIC_LIBRARY BUILD_SHARED_LIBRARY BUILD_EXECUTABLE BUILD_HOST_EXECUTABLE BUILD_PACKAGE BUILD_PREBUILT BUILD_MULTI_PREBUILT BUILD_HOST_PREBUILT BUILD_JAVA_LIBRARY BUILD_STATIC_JAVA_LIBRARY BUILD_HOST_JAVA_LIBRARY 通过把 include $(XXXX) 改为不同选项 // 编译Linux平台的静态库 因为是在PC上编译安卓系统通过交叉编译 所以能生成Linux电脑可运行的动态静态库(不能在手机端运行) 1.include $(BUILD_HOST_STATIC_LIBRARY) host StaticLib: zzjtestA_32 (out/host/linux-x86/obj32/STATIC_LIBRARIES/zzjtestA_intermediates/zzjtestA.a) 2.include $(BUILD_HOST_SHARED_LIBRARY) host SharedLib: zzjtestA_32 (out/host/linux-x86/obj32/lib/zzjtestA.so) 3.include $(BUILD_STATIC_LIBRARY) target StaticLib: zzjtestA_32 (out/target/product/hq6737t_66_1ha_m0/obj_arm/STATIC_LIBRARIES/zzjtestA_intermediates/zzjtestA.a) 4.include $(BUILD_SHARED_LIBRARY) target Symbolic: zzjtestA_32 (out/target/product/hq6737t_66_1ha_m0/symbols/system/lib/zzjtestA.so) 5.include $(BUILD_EXECUTABLE) //手机可执行文件 target Symbolic: zzjtestA (out/target/product/hq6737t_66_1ha_m0/symbols/system/bin/zzjtestA) 6.include $(BUILD_HOST_EXECUTABLE) //PC Linux可执行文件 host Executable: zzjtestA (out/host/linux-x86/obj/EXECUTABLES/zzjtestA_intermediates/zzjtestA) Install: out/host/linux-x86/bin/zzjtestA BUILD_PACKAGE BUILD_PREBUILT BUILD_MULTI_PREBUILT BUILD_HOST_PREBUILT BUILD_JAVA_LIBRARY BUILD_STATIC_JAVA_LIBRARY BUILD_HOST_JAVA_LIBRARY // 这七个选项 1.c 文件编译报错 需要其他 java文件或者 其他文件 待续........ BUILD_PACKAGE 用于生成APK文件 在packages\apps中的所有APP 都是通过 include $(BUILD_PACKAGE) 生成 .apk 文件 include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, src) LOCAL_PACKAGE_NAME := Gallery include $(BUILD_PACKAGE) BUILD_PREBUILT 用于生成预编译文件 配置文件 /system/etc下的 为后续文件提供支持? LOCAL_MODULE := tzdata-host include $(BUILD_PREBUILT) host Prebuilt: tzdata-host (out/host/linux-x86/obj/ETC/tzdata-host_intermediates/tzdata) Install: out/host/linux-x86/usr/share/zoneinfo/tzdata
相关文章推荐
- Linux配置文件说明
- Linux 的基本文件说明
- linux基础命令说明:chown改变文件所有者
- linux文件系统架构说明
- Linux系统文件结构说明(原创)
- linux常用配置文件说明
- Linux 中/etc/inittab文件的字段及其说明
- linux -- centos 下网卡配置文件ifcfg-eth*的选项说明
- Linux下目录文件大说明
- Linux下文件说明
- linux下.a,.so文件说明
- 文件权限说明(Linux)
- Linux下编程文件说明
- linux启动是自动加载的几个文件说明bashrc等
- Linux下Socket写http协议下载文件代码以及说明
- Linux查找文件的相关命令说明
- linux下/etc/passwd文件的选项说明
- Linux的基本文件说明
- linux/compile.h头文件说明
- linux操作系统的用户文件的说明