25 linux ndk 头文件_为什么在ndk使用中明明有源码了还要依赖文件?

本文介绍了在Android中集成OpenCV的三种主要方式:使用jar包+so文件、使用.a+.so+.h文件并自定义JNI接口以及编译源代码生成.so文件。详细解释了这些方法之间的区别以及如何正确地链接库文件。
摘要由CSDN通过智能技术生成

Android 使用OpenCV 共有三种方式 一种是直接使用 jar包 + so 这是最简单的 第二种 .a .so + .h 然后自己写java 中的jni接口 其实就是写第一种方法中jar包的内容 第三种 把所有源文件 和 头文件 放到里面 自己写编译脚本(就是生成第二种方式中的.a + .so,不过这里一般就直接生成.so了)

楼主用的方式是第二种 头文件 + .a +. so

头文件 不等于 源文件 头文件最主要的作用是描述 描述动态库和静态库中有哪些方法 以便让编译器将你写的源文件和库文件中函数链接起来 这样你才能够调用

至于.a 和.so 区别

.a 是静态库 win下叫.lib 但win下的.lib有两种 一种是只有符号表 就相当于函数声明 一种是既带符号表 又带函数的二进制码的

.so 是动态库 win下叫.dll 我见过Linux下有只带符号表的动态库 纯粹是让编译器链接用的

c程序生成过程 预处理->汇编->编译->链接 大概就这四步

也就是说楼主引入头文件 头文件只是告诉你 你所用库中有哪些函数 假如没有库文件 你就不可能链接成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值