Potrzebuję zbudować najnowszą wersję OpenSSL (1.0.0g) dla aplikacji na Androida. Próbuję postępować zgodnie z przykładem podanym przez https://github.com/fries/android-external-openssl, ale po prostu nie mogę go zbudować.Nie można zbudować zewnętrznej biblioteki OpenSSL dla Androida NDK na Windows/Cygwin
Używam Windows 7 Professional (64-bit) z pełnym i najnowszym Cygwin. Zainstalowałem Android SDK i NDK, i mogę z powodzeniem zbudować i uruchomić przykładową aplikację NDK's hello-jni.
Stworzyłem nową przykładową aplikację NDK o nazwie hello-openssl. W katalogu jni utworzyłem katalog openssl. Tam rozpakowane https://github.com/fries/android-external-openssl/zipball/master, który dał mi tę strukturę drzewa pod c: \ android \ android-NDK \ samples \ hello-openssl:
jni
+- openssl
+- apps
+- crypto
+- include
+- openssl
+- ssl
I potem zmodyfikował Android.mk plik w JNI katalog próbując dołączyć pliki OpenSSL:
subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
openssl \
))
include $(subdirs)
teraz kiedy wykonać NDK-build, kompiluje kilka plików .c, ale potem szybko się nie powiedzie:
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
Znalazłem http://osdir.com/ml/android-ndk/2010-07/msg00424.html, który mówi, żebym "dodał jni i jni/include do powyższego LOCAL_C_INCLUDES" w crypto/Android.mk, ale nie mogę znaleźć składni, której powinienem użyć, aby to osiągnąć.
Nie mogę również stwierdzić, że mam poprawną strukturę katalogów.
Serdecznie dziękuję za pomoc, którą można zaoferować.
Dzięki!
Witam, staram się robić to samo, co ty, użyłem openssl-android, zbudowałem źródła i dostałem moje pliki .so, ale napotykam problemy podczas korzystania z nich w moim projekcie. Napisałem plik .c używając tych bibliotek, umieściłem go w moim folderze jni i napisałem plik Android.mk informujący, że używam jeszcze 2 udostępnionych biblioteki, wszystko kompiluje się dobrze, ale zawiesza się w środowisku wykonawczym z UnsatisfiedLinkError, byłoby świetnie, gdybyśmy mogli porozmawiać. – onizukaek