在Android上编译OpenSSL

Compiling OpenSSL on Android

本文关键字:OpenSSL 编译 Android      更新时间:2023-10-16

我目前正试图让我的Cocos2D-X项目通过SSL连接到我的服务器,我让它在iOS上运行,没有遇到很多问题,但在Android上,我甚至无法编译OpenSSL。。我在谷歌上搜索了很多,但所有的帖子要么一直把我重定向到HTTPS相关的帖子(事实并非如此,我在这里没有以任何形式使用HTTP,纯粹是OpenSSL),要么是关于如何使用Java中的标准Android SDK的帖子,要么是根本没有帮助的帖子。

有人能告诉我如何编译这个游戏的Android版本并将其连接到我的服务器吗?

在您的附近遇到问题。每个Android操作系统都有libssl和libcrypto库,它们是OpenSSL的一部分。但他们没有包括在NDK中使用他们。因此,您可以通过从手机中复制*So文件来稍微修改您的NDK。

$adb pull /system/lib/libssl.so /myndk/platforms/android-14/arch-arm/usr/lib
$adb pull /system/lib/libcrypto.so /myndk/platforms/android-14/arch-arm/usr/lib

其中/myndk是通往您的NDK的路径,android-14-您当前的平台

还要将openssl源中的*.h文件复制到/myndk/platforms/android-14/arch-arm/usr/include文件夹中。还要将下一个文件openssl/opensslconf.h添加到该文件夹中(您可以在internet中找到它,也可以从源openssl进行配置)这些文件只在编译时需要。编译后,您的应用程序将从手机中获取库。

也不要忘记在jni/Application.mk文件中为APP_LDFLAGS部分添加-lsl-lcrypto选项

APP_LDFLAGS := -latomic -lssl -lcrypto