SO动态链接库文件的编译和使用,flutter极光推送

链接库分为 静态链接库 和 动态链接库。

静态链接库(a库):在 编译 的时候,库函数中函数的定义已经编译到源文件中,所以,静态链接库在编译完之后存不存在无关紧要。

动态链接库(so库):在 编译 的时候,库函数中函数的定义没有编译到源文件中,只是指定了库文件的路径,所以,编译之后源文件的执行还是依赖于so库文件。

静态链接库和动态链接库的区别在于,主程序在运行前,静态链接库的链接固定写入在程序中,而动态链接库则是在每次程序运行再加载链接。

如果对C语言编译 四步走 不熟悉的同学可以参考这篇文章 :微观的C/C++编译执行过程

在实际开发过程中,动态链接库用的居多,所以,我下面仅讲其的使用步骤:

代码示例

====

准备一个 .c 库函数文件

#include

#include

int wust_test(int value){

printf("%d\n",value);

}

在这里我建议大家也写一个 .h 文件,也就是你这个库函数里面包含 函数的一个申明,这样函数的含义 和 用法便一目了然了。如下:

//功能:测试 so 动态链接库

//参数一:整型

int wust_test(int value);

你可能感兴趣的:(程序员,面试,移动开发,android)