.mm .a .so .o .lib .dll .obj .sh .mk .java .jar
来源:互联网 发布:网络上赌博算不算诈骗 编辑:程序博客网 时间:2024/06/05 14:35
-> SDK NDK ADT API DLL JDK JNI eclipse
Android.mk文件语法规范及使用模板
GCC编译器(多种硬体平台上编译出可执行程序的超级编译器)
Makefile经典教程(掌握这些足够)
.mm
.mm是oc和C++混编类型文件后缀,给编译器识别的。
如果程序中用到了C++的函数,那么就需要把工程中的.m写成.mm。
其实就是m文件,因为用到了静态库 比如什么***.a ,所以m文件要 改成.mm
.a .so .o
.o cpp(或c 等语言文件)编译后生成.o文件 .o包含的是机器可以识别的 01机器语言。 即对象文件
.a 一个.o文件 可能还会用到别的.o文件 才可执行 .a文件就是这些.o文件的集合 即静态库文件 静态库文件会被加入程序 成为可执行文件的一部分
.so 文件是共享库文件(动态链接)。动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在操作系统的管理下,才在应用程序与相应的.so之间建立链接关系。 cocos2dx 里面的函数是通过动态库调用的
LINUX系统中.a文件是静态链接库文件。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。
.so文件是共享库文件(动态链接)。动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在操作系统的管理下,才在应用程序与相应的.so之间建立链接关系。
.o文件就是对象文件,里面包含的内容就是01这样的机器可执行的指令,当程序要执行时还需要进行链接(link).链接就是把多个.o文件链成一个可执行文件。
.a文件就是多个.o文件的组合。
.a文件是库文件
找一下对应的.h文件,然后把.a和.h一起添加到你的项目里。然后直接调用.h文件中的函数即可
.lib .dll .obj
.lib是一种文件名后缀,该文件为Windows操作系统中的库文件,相当于Linux中的·a或·o、.so文件
lib文件通过编译才可以使用编译分静态与动态之分。
静态编译
静态lib将导出声明和实现都放在lib中。编译后所有代码都嵌入到宿主程序
动态编译
动态lib相当于一个h文件,是对实现部分(.dll文件)的导出部分的声明。编译后只是将导出声明部分编译到宿主程序中,运行时候需要相应的dll文件支持
与dll区别
(1)lib是编译时需要的,dll是运行时需要的。
(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。
(3)在动态库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是DLL文件,引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行时再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。从上面的说明可以看出,DLL文件必须随应用程序一起发行,否则应用程序将会产生错误。
obj就是目标文件,是你的源程序经过编译程序编译后生成的.它不能直接执行,需要连接程序连接后才能生成可执行文件,这样就能值行了。这种目标文件一般是由机器代码组成的,obj文件是目标文件,一般是程序编译后的二进制文件,在通过链接器和资源文件链接就成exe文件了。OBJ只给出了程序的相对地址,而EXE是绝对地址。
.sh
是UNIX/LINUX 操作系统的脚本文件
3) C\C++应用程序,可执行的C\C++应用程序
4)C\C++静态库,编译生成C\C++静态库,并打包成.a文件
5)C\C++共享库, 编译生成共享库(动态链接库),并打包成.so, 有且只有共享库才能被安装/复制到您的应用软件(APK)包中。
.java .jar
.java 类似.cpp
JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。
使用范围
一个 JAR 文件可以用于
- .mm .a .so .o .lib .dll .obj .sh .mk .java .jar
- .dll .obj .lib .so .o .a文件的区别含义
- 后缀名“.dll .obj .lib”和“ .so .o .a”文件的区别含义
- 后缀名“.dll .obj .lib”和“ .so .o .a”文件的区别含义
- 后缀名“.dll .obj .lib”和“ .so .o .a”文件的区别含义
- c/C++中后缀obj/o lib/a dll/so bin文件意义
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe)
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 攻略
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 攻略
- lib dll exe so a
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- 命令行编译程序 MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe)
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe) 玩转攻略手记
- 命令行编译程序 MSVC vs. MinGW 之 (lib,dll,def,obj,exe) vs (a,dll,def,o,exe)
- Java——关于String(字符串)
- jQuery Validation Engine单独使用funcCall验证
- Android (AOPS) 开发环境配置
- Java——各种日期的获取(来自别人分享)
- java设计模式(二)单例模式 建造者模式
- .mm .a .so .o .lib .dll .obj .sh .mk .java .jar
- Java IO 概念 Java编程思想读书笔记
- 恢复目录数据库 IMPORT CATALOG命令相关
- asp.net购物车,订单以及模拟支付宝支付(一)---购物车表及添加购物车流程
- Java——集合框架 工具
- 存储:F2FS文件系统读写性能良好
- Java——设计模式(单例模式)
- 一步步完成 最美残缺
- iOS开发-提交App至AppStore的步骤