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. 关于在windows下部署发布QT程序的总结

    原文请看:http://www.cnblogs.com/javaexam2/archive/2011/05/18/2632916.html 关于在windows下部署发布QT程序的总结 2008-06 ...

  2. python spyder 今天突然打不开了【已解决】

    python spyder 我是设置开机启动的,先出现dos窗口,然后是蜘蛛网,后面就什么都没有了.然后百度了半天,在csdn看到一篇文章,试了一下,内牛满面! 方法:C:\Documents and ...

  3. poj 3122(二分查找)

    Pie Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13564   Accepted: 4650   Special Ju ...

  4. 【20181024T1】小C的数组【二分+dp】

    题面 [正解] 题目求最大的最小,可以二分 设\(f_i\)表示第i个数不改满足条件需要改多少个 可以从j转移,那么[j+1,i]的均匀摊开后的差值应该在范围内 容易推出方程: \(f_i=min_{ ...

  5. 【20181019T3】比特战争【最小生成树思想】

    题面 [错解] Hmm不可做啊 要不按b排个序? 然后并查集瞎搞,刷刷刷过了样例 然后大样例大了几万倍 出了组小数据,Successful Hack 弃疗 水过10分 [正解] 用占领的边将顶点连起来 ...

  6. [ARC062F]Painting Graphs with AtCoDeer

    题意:一个无向图,用$k$种不同的颜色给每条边染色,问能染出多少种不同的图,如果两张图能通过循环移位环边使得颜色相同,那么这两张图被认为是相同的 数学太差伤不起啊...补了一下Burnside定理的证 ...

  7. 中间件和auth模块

    中间件 1.什么是中间件 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用 ...

  8. [JZOJ5426]摘Galo

    题目大意: 有一棵n个结点的树,每个点都有一个权值,你要从中选出不超过k+1个点使得权值和尽量大. 同时要注意如果一个点被选择,那么它的子树和这个点到根结点路径上的点不能被选择. 思路: 很水的树形D ...

  9. 鹦鹉学舌1——C语言初学者百题大战之三

    #include<stdio.h> int main() { int a; scanf("%d",&a); printf("%d",a-a+ ...

  10. 使用Gradle构建Android应用的渠道包

    所有做Android App的同志们应该都知道渠道包是什么,得力于Android生态的多样性,我等写Android应用的人类每次发布App都需要面对数十个市场,而为了能够采集到市场的表现数据,就必须为 ...