Android NDK 交叉编译C++代码生成.so共享库详细步骤

Android NDK 调用c++ stl 模板库(修改android.mk文件)

1  在需要调用模板库的文件前包含头文件:
 
   #include <iostream>
  #include <vector>
 
  此时编译可能不过,需要在android.mk文件内添加:
  
LOCAL_C_INCLUDES :=   /home/administrator/android-ndk-r5b/sources/cxx-stl/stlport/stlport     (ndk安装路径下的stl库)
 
 
 2  在 mk 文件前加入:
 
   APP_STL  :=  stlprot_static    (模板库以静态库的方式添加)
 
  ....
  LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib  -llog \
 /home/administrator/android-ndk-r5b/sources/cxx-stl/stlport/libs/armeabi/libstlport_static.a
 
我的Android.mk文件中的内容为:

LOCAL_PATH := $(call my-dir)

LOCAL_C_INCLUDES += external/stlport/stlport
LOCAL_C_INCLUDES += bionic
LOCAL_C_INCLUDES += bionic/libstdc++/include LOCAL_SHARED_LIBRARIES := libstlport GXPM_LIB_DIR := ../../../common/GoxceedPM include $(CLEAR_VARS)
#$(GXPM_LIB_DIR)/minidb/minilzo/minilzo.c \ GXPM_SRC_FILES := \
$(GXPM_LIB_DIR)/zlib/adler32.c \
$(GXPM_LIB_DIR)/zlib/compress.c \
$(GXPM_LIB_DIR)/zlib/crc32.c \
$(GXPM_LIB_DIR)/zlib/deflate.c \
$(GXPM_LIB_DIR)/zlib/gzio.c \
$(GXPM_LIB_DIR)/zlib/inffast.c \
$(GXPM_LIB_DIR)/zlib/inflate.c \
$(GXPM_LIB_DIR)/zlib/inftrees.c \
$(GXPM_LIB_DIR)/zlib/trees.c \
$(GXPM_LIB_DIR)/zlib/uncompr.c \
$(GXPM_LIB_DIR)/zlib/zutil.c \
$(GXPM_LIB_DIR)/lz4/lz4.c \
$(GXPM_LIB_DIR)/lz4/lz4frame.c \
$(GXPM_LIB_DIR)/lz4/lz4hc.c \
$(GXPM_LIB_DIR)/lz4/xxhash.c \
$(GXPM_LIB_DIR)/minilzo/minilzo.c \
$(GXPM_LIB_DIR)/minidb/bitmap.c \
$(GXPM_LIB_DIR)/minidb/buddy.c \
$(GXPM_LIB_DIR)/minidb/compressor.cpp \
$(GXPM_LIB_DIR)/minidb/compr_lz4.cpp \
$(GXPM_LIB_DIR)/minidb/compr_lz77.cpp \
$(GXPM_LIB_DIR)/minidb/compr_lzo.cpp \
$(GXPM_LIB_DIR)/minidb/compr_zlib.cpp \
$(GXPM_LIB_DIR)/minidb/db.cpp \
$(GXPM_LIB_DIR)/minidb/hash.c \
$(GXPM_LIB_DIR)/minidb/io.cpp \
$(GXPM_LIB_DIR)/minidb/map.c \
$(GXPM_LIB_DIR)/textcode_convert.c \ LOCAL_SRC_FILES := \
$(GXPM_SRC_FILES) \
gomedia.cpp LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../../../common/GoxceedPM/zlib/include \
$(LOCAL_PATH)/../../../common/GoxceedPM/lz4 \
$(LOCAL_PATH)/../../../common/GoxceedPM/minilzo \
$(LOCAL_PATH)/../../../common/GoxceedPM/minidb \
$(LOCAL_PATH)/../../../common/GoxceedPM/core \
$(LOCAL_PATH)/../../../common/GoxceedPM \ LOCAL_LDLIBS := -llog LOCAL_MODULE := gomedia include $(BUILD_SHARED_LIBRARY)

Application.mk:

APP_ABI := all
APP_PLATFORM := android-8
APP_STL := stlport_static
APP_CPPFLAGS := -fpermissive

aa

Android NDK 交叉编译C++代码生成.so共享库详细步骤的更多相关文章

  1. 关于Android NDK中调用第三方的动态库

    因为最近在整合Android 上RTSP播放器的网络库,因需要调用自己编译的网络库,调用一直出现问题,开始时是直接在Android.mk 中加入LOCAL_SHARED_LIBRARIES := li ...

  2. 【初体验】macos下android ndk交叉编译hello world,并拷贝到android手机上执行

    1.机器上以前安装了java 1.8(貌似android ndk不需要java) 2. 下载android ndk,版本是android-ndk-r14b (比较奇怪,我下载了最新的android-n ...

  3. ndk学习9: 动态使用共享库

    动态使用共享库函数 dll_main      环境介绍 续上节代码 目录结构:   android.mk如下: LOCAL_PATH := $(call my-dir) include $(CLEA ...

  4. Android NDK环境搭建及调用JNI的简单步骤

    转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3396595.html Java Native Interface (JNI)标准是java平台的一部分 ...

  5. Android NDK编程,引入第三方.so库

    android自带的编译工具NDK进行编译时(非单纯的调用第三方.so而是进行ndk编程),armeabi以及armeabi-v7a文件夹下的第三方so文件将会被删除,只会产生编译后的so文件,其他的 ...

  6. Linux下搭建iSCSI共享存储详细步骤(服务器模拟IPSAN存储)

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...

  7. Android NDK 使用自己的共享库(Import Module)

    LOCAL_PATH := $(call my-dir)//标准mk语句,指编译路径,所有mk文件第一句都是这个 /**这个模块表示引用了一个本地的静态库include $(CLEAR_VARS) / ...

  8. Linux学习笔记——如何使用共享库交叉编译

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

  9. Linux学习笔记——怎样在交叉编译时使用共享库

    0.前言     在较为复杂的项目中会利用到交叉编译得到的共享库(*.so文件).在这样的情况下便会产生下面疑问,比如:     [1]交叉编译时的共享库是否须要放置于目标板中,假设须要放置在哪个文件 ...

随机推荐

  1. urllib2模块、cookielib模块

    urllib2模块 urllib模块和urllib模块类似,用来打开URL并从中获取数据.与urllib模块不同的是,urllib模块不仅可以使用urlopen() 函数还可以自定义Opener来访问 ...

  2. 洛谷P3195 [HNOI2008] 玩具装箱 [DP,斜率优化,单调队列优化]

    题目传送门 题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N ...

  3. 并发系列5-大白话聊聊Java并发面试问题之微服务注册中心的读写锁优化【石杉的架构笔记】

  4. Spring的Web服务

    Spring支持:使用JAX-RPC暴露服务,访问Web服务 除了上面所说的支持方法,你还可以用XFire xfire.codehaus.org 来暴露你的服务.XFire是一个轻量级的SOAP库,目 ...

  5. [Sgu395][bzoj2363]Binary Cat Club

    一道神题…… rzO 发现立杰在初三(http://hi.baidu.com/wjbzbmr/item/4a50c7d8a8114911d78ed0a9据此可以推断)就怒A了此题…… Orz /*** ...

  6. 【DFS】bzoj2435 [Noi2011]道路修建

    两遍DFS.第一遍统计以每个点为根的子树大小,第二遍更新答案. #include<cstdio> #include<iostream> using namespace std; ...

  7. 【斜率优化】bzoj3675-[Apio2014]序列分割&&Uoj104

    题目大意 将一个长度为N的非负整数序列分割成k+l个非空的子序列,每次选择一位置分割后,将会得到一定的分数,这个分数为两个新序列中元素和的乘积.求最大的分数. [UOJ104]并输出任意一种方案 思路 ...

  8. RACLE 错误 12899 处理, oracle 11g 更改字符集

    工作需要,安装装了oracle 11g,在导入其他机器上的备份数据的时间,发生一个错误: IMP-00019: 由于 ORACLE 错误 12899 而拒绝行IMP-00003: 遇到 ORACLE ...

  9. Android内存优化12 内存泄漏常见情况3 注册泄漏

    android 中有很多注册和反注册,由于在注册后,上下文自身会被持久化的观察者列表所持有,如果不进行反注册,就会造成内存泄漏 内存泄漏1:Sensor Manager 代码如下: MainActiv ...

  10. Controller和RestController的区别

    1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2.  Controller, RestController的不同点 @C ...