我需要爲Android應用程序構建最新的OpenSSL(1.0.0g)。我試圖按照https://github.com/fries/android-external-openssl給出的例子,但我無法建立它。無法在Windows上爲Android NDK構建外部OpenSSL庫/ Cygwin
我正在運行Windows 7專業版(64位)和最新的Cygwin。我已經安裝了Android SDK和NDK,並且我可以成功構建並運行NDK的hello-jni示例應用程序。
我創建了一個名爲hello-openssl的新樣本NDK應用程序。在它的jni目錄中,我創建了一個openssl目錄。在那裏,我解壓https://github.com/fries/android-external-openssl/zipball/master,這給了我在c此樹結構:\機器人\ Android的NDK \樣本\ HELLO-的OpenSSL:
jni
+- openssl
+- apps
+- crypto
+- include
+- openssl
+- ssl
然後我修改了Android.mk文件中的JNI企圖包括OpenSSL的文件目錄:
subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
openssl \
))
include $(subdirs)
現在,當我執行NDK建造,它編譯幾個.c文件,但隨後很快失敗:
Compile thumb : crypto <= cryptlib.c
In file included from jni/openssl/crypto/cryptlib.c:117:
jni/openssl/crypto/cryptlib.h:65:18: error: e_os.h: No such file or directory
jni/openssl/crypto/cryptlib.h:72:28: error: openssl/crypto.h: No such file or directory
我發現http://osdir.com/ml/android-ndk/2010-07/msg00424.html,它告訴我「將 jni和jni/include添加到crypto/Android.mk中的上述LOCAL_C_INCLUDES」中,但我無法弄清楚我應該用來實現這一點的語法。
我也想不出我有正確的目錄結構。
我衷心感謝任何可以提供的幫助。
謝謝!
您好,我試圖做像你一樣,我用的OpenSSL的Android同樣的事情,構建源代碼並獲得了我的.so文件,但是在我的項目中使用它時遇到了問題,我使用這些庫編寫了.c文件,將它放在我的jni文件夾中,並編寫了一個Android.mk文件,告訴我還使用了2個共享圖書館,一切都編譯好,但在運行時崩潰與UnsatisfiedLinkError,這將是很好,如果我們可以談。 – onizukaek 2013-08-18 14:36:18