C++程序移植到Android平台
来源:互联网 发布:稀疏矩阵的压缩方法 编辑:程序博客网 时间:2024/05/18 02:11
Android开发环境搭建 参考
http://www.cnblogs.com/pharen/archive/2011/09/13/2174592.html
http://blog.csdn.net/orzorz/article/details/5503751
因项目需要,需要将原先跑在linux下的C++程序移植到Android平台。
操作系统:ubuntu
编译环境:Android ndk(我装的是android-ndk-r6b) (安装请参考
http://blog.csdn.net/yang_hui1986527/article/details/6850157 )
以编译libpinpad为例
先将要编译的libpinpad工程拷入android-ndk-r6b目录下的samples中,进入libpinpad目录
在其中新建jni目录,将libpinpad中的文件拷入jni中。
编写Android.mk文件
LOCAL_PATH:= $(call my-dir)
APP_STL := gnustl_static
APP_CPPFLAGS := -fexceptions
include $(CLEAR_VARS)
#LOCAL_CFLAGS += -I~/usr/include
LOCAL_INCLUDES += $(LOCAL_PATH)
LOCAL_LDLIBS := //引入库的路径
LOCAL_C_INCLUDES :=include //引入的头文件的路径
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES += select.cpp ztpinpad.cpp ztpnd_interface.c des.c public.c clist.c csocket.c cserial.c taskdispatcher.cpp tracelog.c //源文件
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE:= ztpinpadserver //编译生成的文件名
include $(BUILD_EXECUTABLE) //编译成可执行文件
说明:
如果要编译成可执行文件
include $(BUILD_SHARED_LIBRARY) //编译成库文件
引入了外部库:
LOCAL_LDLIBS := -L../app/lib -lztcard -lztpublic -lc
头文件路径:
LOCAL_C_INCLUDES := $(LOCAL_PATH) \ $(LOCAL_PATH)/home/yuansu/android-ndk-r6b/samples/libsmartcard/app/inc
编写完Android.mk文件后编译即可
ndk-build
编译完后,会在jni同级目录下生成 libs obj文件
编译生成的文件在libs/armeabi下
编译问题:
出现#include <deque>头文件找不到、
error: ISO C++ forbids declaration of 'deque' with no type
之类的问题时
解决办法:编写Application.mk文件
APP_STL := gnustl_static
APP_CPPFLAGS := -fexceptions
Application文件,貌似可以解决许多c++头文件在android编译环境中找不到问题。
2013-6-4
- C++程序移植到Android平台
- 关于在Android上运行纯C程序即移植thttpd到android平台
- 移植程序到symbian平台
- 移植Busybox到Android平台
- ffmpeg移植到android平台
- FFmpeg 移植到 Android 平台
- srtp移植到android平台
- gloox移植到android平台
- FFmpeg 移植到 Android 平台
- 移植DynamixelSDK到Android平台
- tensorflow 移植到android平台
- c++游戏程序移植到android平台后,如何更新程序,重新编译
- linux程序移植到android
- Linux程序移植到Android
- 移植C/C++程序到不同平台时需要留意的地方
- Android应用移植到OPhone平台指南
- 将boa移植到Android平台上
- boa移植到android平台上
- sicily 1020. Big Interger 有数学公式
- 昨夜如水今日是永恒
- 新来的研发总监老M,交谈比较顺利,相处不会太难
- VS项目属性的一些配置项的总结(important)
- C++整形转化成string类型---路径拼接在批处理程序中的应用
- C++程序移植到Android平台
- C#中生成Word并写入数据
- Android在OnCreate中获取控件的宽度和高度的实现代码
- resin3.1.3相比于resin3.0的变化
- Ztree 异步加载 的初步研究
- 习近平 李克强就韩国客轮沉没事故向韩方致慰问电
- unicode码 java中文
- iOS开发之八:UISlider、UISegmentedControl、UIPageControl的使用
- 黑马程序员-OC中字符串的操作-NSString+NSMutableString+NSValue+NSAraay用法汇总