Android平台JNI程序编译之openssl
2015-01-27 10:59
316 查看
一. 安装ndk
1. 下载最新ndk
2. 解压
3. 配置环境变量
a. vim ~/.baserc
b. NDK=~/android-ndk
c. export NDK
4. 使环境变量生效
a. source ~/.baserc
二. 编译openssl
1. 下载开源的openssl-android
(1). 网址
a. https://github.com/guardianproject/openssl-android (2). 版本
a. 现在(20140411)的版本为1.0.0a
2. 编译
(1). 此开源的代码可直接编译
a. $NDK/ndk-build
(2). 动态库
a. 直接编译,编译完成后将在libs下生成libcrypto和libssl的动态库
(3). 静态库
a. 修改include $(BUILD_SHARED_LIBRARY)为include $(BUILD_STATIC_LIBRARY)
b. $NDK/ndk-build
3. 其他参考(中国网友)
(1). 网址
a. http://download.csdn.net/source/3408214 (2). 修改(此网友改变的有点错误)
a. myApp下的Androdi.mk
include $(CLEAR_VARS)该句必须加在LOCAL_PATH := $(call my-dir)的下一句,不能在local_c_includes :=之后,否则编译不出来
b. 必须添加库连接LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog -lz -ldl否则链接不过
c. openssl库的连接顺序为LOCAL_STATIC_LIBRARIES := libcrypto-static libssl-static,不可乱
三. 备注
1. 如出现未定义出错,可能是由于没有连接其他库的原因,比如LOCAL_LDLIBS := -lz –ldl
2. 如出现链接出错,也有可能是openssl的两个库链接顺序LOCAL_SHARED_LIBRARIES := libssl-static libcrypto-static
1. 下载最新ndk
2. 解压
3. 配置环境变量
a. vim ~/.baserc
b. NDK=~/android-ndk
c. export NDK
4. 使环境变量生效
a. source ~/.baserc
二. 编译openssl
1. 下载开源的openssl-android
(1). 网址
a. https://github.com/guardianproject/openssl-android (2). 版本
a. 现在(20140411)的版本为1.0.0a
2. 编译
(1). 此开源的代码可直接编译
a. $NDK/ndk-build
(2). 动态库
a. 直接编译,编译完成后将在libs下生成libcrypto和libssl的动态库
(3). 静态库
a. 修改include $(BUILD_SHARED_LIBRARY)为include $(BUILD_STATIC_LIBRARY)
b. $NDK/ndk-build
3. 其他参考(中国网友)
(1). 网址
a. http://download.csdn.net/source/3408214 (2). 修改(此网友改变的有点错误)
a. myApp下的Androdi.mk
include $(CLEAR_VARS)该句必须加在LOCAL_PATH := $(call my-dir)的下一句,不能在local_c_includes :=之后,否则编译不出来
b. 必须添加库连接LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog -lz -ldl否则链接不过
c. openssl库的连接顺序为LOCAL_STATIC_LIBRARIES := libcrypto-static libssl-static,不可乱
三. 备注
1. 如出现未定义出错,可能是由于没有连接其他库的原因,比如LOCAL_LDLIBS := -lz –ldl
2. 如出现链接出错,也有可能是openssl的两个库链接顺序LOCAL_SHARED_LIBRARIES := libssl-static libcrypto-static
相关文章推荐
- Android JNI helloworld程序编写与编译-图文解说
- Android JNI 编译正确 但是提示程序有错误无法运行 而且还看不到任何错误提示 的解决方法
- 使用Cordova编译Android平台程序提示:Could not reserve enough space for 2097152KB object heap
- 高通snapdragon平台下编译生成运行Android可执行程序小白教程
- Linux环境下Android JNI程序的编译
- android Jni编译多平台so库
- ubuntu交叉编译android平台可执行C程序
- 编译基于cent64,android,suse32平台程序
- 深入了解android平台的jni---编译ffmpeg源码
- 在Android 2.3 平台下编译CURL 和OpenSSL过程
- 在Android下编译openssl静态库(平台:Windows)
- android平台 java程序 编译
- c++游戏程序移植到android平台后,如何更新程序,重新编译
- 深入了解android平台的jni---编译ffmpeg源码
- 关于cocos2d-x 3.X的搭建和编译成Android平台程序的说明
- Android JNI 编译正确 但是提示程序有错误无法运行 而且还看不到任何错误提示 的解决方法
- 使用Cordova编译Android平台程序提示:Could not reserve enough space for 2097152KB object heap
- Android平台openssl编译打包流程
- ffmpeg移植到Android平台为什么用编译libjnivideo.so和libjniaudio.so
- 在Android下运行Linux平台编译的程序