Jthread1.3.1 Jrtplib3.9.1跨平台交叉编译之Android(二)
来源:互联网 发布:mysql中with as 编辑:程序博客网 时间:2024/05/29 18:22
平台式互通的,代码风格也相似。之前的折腾,领悟,今天很快就在ndk 上测试通了.这类文章极少,随意记录下
1.平台
win7 android-ndk-r8d
2.源码导入到Jni目录下
肯定出错,大原则不要改动源代码。否则,会花很大时间调试,最终还不了了之,但配置文件,路径等可以修改。
jni下建两个目录分别为Jthread和Jrtplib导入相关源码
先说明一个问题:上篇文章提到是XXX.h.in文件,就是配置前文件,它很特殊。cmake可以配置,可是不太熟悉。tool目录下test程序运行中,会检测平台win/liunx/unix,支持ipv4/6等,最终生成define。但本次是ndk编译,这些都谈不上,所以自己得定义。缺什么,补什么。刚开始编译就会出现jthreadcongfig.h找不见。
JTHREADCONFIG_H.in
/**/#ifndef JTHREADCONFIG_H#define JTHREADCONFIG_H#define JTHREAD_IMPORT #define JTHREAD_EXPORT #ifdef JTHREAD_COMPILING#define JTHREAD_IMPORTEXPORT JTHREAD_EXPORT#else#define JTHREAD_IMPORTEXPORT JTHREAD_IMPORT#endif // JTHREAD_COMPILING
// using win32//#define JTHREAD_CONFIG_WIN32THREADS 默认好像是liunx平台,也可查找相关定义。一旦有这个定义就只加载winsock2.h等win头文件
#endif // JTHREADCONFIG_H定义完,改成.h,其他类似。缺少文件,找准地方,看好上下ifdef后面的字符串,就知道该怎么定义了。至少能分清吧。
3.android.mk
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := my-jniLOCAL_SRC_FILES:= \jrtplib/tools/gettypes.cpp \ jrtplib/rtcpapppacket.cpp \ jrtplib/rtcpbyepacket.cpp \ jrtplib/rtcpcompoundpacket.cpp \ jrtplib/rtcpcompoundpacketbuilder.cpp \ jrtplib/rtcppacket.cpp \ jrtplib/rtcppacketbuilder.cpp \ jrtplib/rtcprrpacket.cpp \ jrtplib/rtcpscheduler.cpp \ jrtplib/rtcpsdesinfo.cpp \ jrtplib/rtcpsdespacket.cpp \ jrtplib/rtcpsrpacket.cpp \ jrtplib/rtpcollisionlist.cpp \ jrtplib/rtpdebug.cpp \ jrtplib/rtperrors.cpp \ jrtplib/rtpinternalsourcedata.cpp \ jrtplib/rtpipv4address.cpp \ jrtplib/rtpipv6address.cpp \ jrtplib/rtplibraryversion.cpp \ jrtplib/rtppacket.cpp \ jrtplib/rtppacketbuilder.cpp \ jrtplib/rtppollthread.cpp \ jrtplib/rtprandom.cpp \ jrtplib/rtpsession.cpp \ jrtplib/rtpsessionparams.cpp \ jrtplib/rtpsessionsources.cpp \ jrtplib/rtpsourcedata.cpp \ jrtplib/rtpsources.cpp \ jrtplib/rtptimeutilities.cpp \ jrtplib/rtpudpv4transmitter.cpp \ jrtplib/rtpudpv6transmitter.cpp \jrtplib/jthread.cpp \jrtplib/jmutex.cpp \jrtplib/rtprandomurandom.cpp \jrtplib/rtprandomrand48.cpp \jrtplib/rtpexternaltransmitter.cppLOCAL_EXPORT_C_INCLUDES:=$(LOCAL_C_INCLUDES)LOCAL_PRELINK_MODULE := false APP_STL := stlport_static include $(BUILD_STATIC_LIBRARY)不要用 $(wildcard $(LOCAL_PATH)/*.cpp),加载顺序不对,会出错滴。
4.application.mk
APP_STL := stlport_staticAPP_MODULES := my-jniOK ,后面再测试联通,vc6.0编译过了
vc6.0编译,用好cmake,会很快的,可以结合这两篇博文,不在赘述,测试通过。
http://blog.163.com/zhujiatc@126/blog/static/183463820133886426/
http://blog.sina.com.cn/s/blog_4e87ac6e01009vif.html
下步测试PC和android联通,补充一点ndk虽然没有去大小端,但是可以自己define,也就不用像之前该Cmakelist,总之Config.h文件很重要,自己琢磨。
0 0
- Jthread1.3.1 Jrtplib3.9.1跨平台交叉编译之Android(二)
- Jthread1.3.1 Jrtplib3.9.1跨平台交叉编译之Android(一)
- jrtplib3.9.1交叉编译
- Jrtplib3.9.1交叉编译
- ubuntu下jrtplib3.9.1和jthread1.3.1的安装
- 交叉编译jrtplib3.9.1详解
- 交叉编译jrtplib3.9.1详解
- Jrtplib rtp(3.7.1)开源库和jthread1.2.1安装(非交叉编译版以及交叉编译版)
- 跨平台交叉编译FFmpeg库(Android、IOS、S2L)
- Android平台交叉编译流程
- Golang跨平台交叉编译
- readline-6.3 之arm平台交叉编译
- readline-6.3 之arm平台交叉编译
- Android平台下FreePascal的交叉编译
- cocos2d-x交叉编译到android平台
- Cocos2dx交叉编译至android平台
- 交叉编译pjsip2.2.1至android平台
- 交叉编译x264(二)
- wxpython的gui布局问题
- 突发想法(一)
- 读/写某个进程的CPU affinity
- 相机去畸变,以及双目平行校正----极线校正(一)————之单目畸变校正详细过程
- 第六次codeforces竞技结束 #257 Div 2
- Jthread1.3.1 Jrtplib3.9.1跨平台交叉编译之Android(二)
- 不使用任何的循环语句或是条件语句把从1到1000的数打印出来
- 当spring 容器初始化完成后执行某个方法
- UIButton超出父view的显示范围后,不响应点击事件
- java中main函数解析
- Buffer的准备和数据读取
- Android 编译系统 (二)
- (转)年薪千万的工作感悟
- Android 编译系统 (一)