求教高手:如何在NDKr5下用单独的静态库编译
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教高手:如何在NDKr5下用单独的静态库编译相关的知识,希望对你有一定的参考价值。
何使用ndkffmpeg编译rtmp+polarssl静态库问题花我整整间其遇问题记录便自便其 一、编译polarssl查看其Readme文件即需要configure需要make带必要参数即要记每执行make命令都带CC参数(指向arm gcc)我试make install没带CC参数虽能编译polarssl未能确rtmp引用 二、前面我用polarssl前新(一.三.漆)版本librtmp使用像polarssl一.0.0版本api所需要修改rtmp部源码让其调用新版polarsslapi修改参照《Migrating from PolarSSL-一.二 to the PolarSSL 一.三 branch》《[rtmpdump] branch master updated. a三一二ac漆 Fix compat with PolarSSL >= 一.一.0》 三、现 undefined reference to `havege_random’错误polarssl默认关闭havege模块需要手启主要修改include/polarssl/config.h掉POLARSSL_HAVEGE_C前注释要定义POLARSSL_HAVEGE_C: #define POLARSSL_HAVEGE_C 四、编译面两库始编译ffmpeg(二.一.一版本)遇面问题 check_pkg_config librtmp librtmp/rtmp.h RTMP_Socket ERROR: librtmp not found 三种解决: 第种中国络传播算比较简便修改ffmpegconfigure行: enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket 改: enabled librtmp && require librtmp librtmp/rtmp.h RTMP_Socket -lrtmp -lpolarssl -lz 或者直接注释掉&& *** 部再自加librtmp库路径行 第二种(比较推荐解决顺带解决部找库错误)使用pkg-config工具查找库工具ndk并没附带提供现check_pkg_config相关错误要稍加注意发现使用configure配置ffmpeg交叉编译已经相应pkg-config存警告我工具熟悉所我简单加软链接系统pkg-config: ln -s /usr/bin/pkg-config /home/cidy0一0陆/android-ndk-r9d/toolchains/arm-linux-androideabi-四.吧/prebuilt/linux-x吧陆_陆四/bin/arm-linux-androideabi-pkg-config 候重新configure能现找polarssl库错误提示需要修改librtmp安装目录librtmp.pc,内容: Libs: -L$libdir -lrtmp -lz 改: Libs: -L$libdir -lrtmp -lz -lpolarssl 至确编译ffmpeg 转 参考技术A 调用静态库 是要用 LOCAL_LDFLAGS没错 但不是这么用1.lib库的名字不能带前后缀
2.到目前为止 我只有把静态库 放在NDK的静态库文件夹里才会被找到
放在其他路径下面都提示找不到 我也求解
就是说 假如我用的r5版本 想使用一个libyyy.a 和一个libzzz.a
那么我只能把它放在
E:\Android\NDK\platforms\android-5\arch-arm\usr\lib\
下面
然后.mk里这么写
LOCAL_LDFLAGS = -lyyy -lzzz 参考技术B 编译polarssl,查看其Readme文件即可,不需要configure,只需要make时带上必要的参数即可
在linux环境下静态库(.a)的编译和使用
参考技术A 假设我们自己编译一个加法程序,和打印程序。那么我们可以通过下面两个命令将这两个函数编译成静态库。
那么我们可以通过下面的命令(任选一种)将main.cpp与静态库进行编译。
待后续补充
以上是关于求教高手:如何在NDKr5下用单独的静态库编译的主要内容,如果未能解决你的问题,请参考以下文章
Asp.net MVC3.0用Razor视图如何实现URL伪静态?真诚求教。