Tôi cần phải xây dựng OpenSSL mới nhất (1.0.0g) cho một ứng dụng Android. Tôi đang cố gắng làm theo các ví dụ được đưa ra bởi https://github.com/fries/android-external-openssl, nhưng tôi chỉ không thể làm cho nó được xây dựng.Không thể xây dựng thư viện OpenSSL bên ngoài cho Android NDK trên Windows/Cygwin
Tôi đang chạy Windows 7 Professional (64 bit) với Cygwin hoàn chỉnh và gần đây. Tôi đã cài đặt Android SDK và NDK và tôi có thể xây dựng thành công và chạy ứng dụng mẫu hello-jni của NDK.
Tôi đã tạo một ứng dụng mẫu NDK mới có tên là hello-openssl. Trong thư mục jni của tôi, tôi đã tạo một thư mục openssl. Ở đó, tôi giải nén https://github.com/fries/android-external-openssl/zipball/master, mà đã cho tôi cơ cấu này cây dưới c: \ android \ android-ndk \ samples \ hello-openssl:
jni
+- openssl
+- apps
+- crypto
+- include
+- openssl
+- ssl
sau đó tôi sửa đổi Android.mk tập tin trong JNI thư mục trong một nỗ lực để bao gồm các tập tin OpenSSL:
subdirs := $(addprefix $(LOCAL_PATH)/,$(addsuffix /Android.mk, \
openssl \
))
include $(subdirs)
Bây giờ khi tôi thực hiện ndk-build, nó biên dịch nhiều file .c, nhưng sau đó nhanh chóng thất bại:
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
Tôi tìm thấy http://osdir.com/ml/android-ndk/2010-07/msg00424.html, cho tôi biết "thêm jni và jni/include vào LOCAL_C_INCLUDES" ở trên trong crypto/Android.mk, nhưng tôi không thể tìm ra cú pháp tôi nên sử dụng để đạt được điều này.
Tôi cũng không thể tìm ra được cấu trúc thư mục chính xác.
Tôi chân thành đánh giá cao bất kỳ trợ giúp nào có thể được cung cấp.
Cảm ơn!
Xin chào, tôi đang cố gắng để làm điều tương tự như bạn đã làm, tôi đã sử dụng openssl-android, Tôi đã viết các tệp .so bằng cách sử dụng các thư viện này, đặt nó vào thư mục jni của tôi và đã viết một tệp Android.mk cho biết rằng tôi cũng sử dụng 2 chia sẻ khác các thư viện, mọi thứ biên dịch tốt nhưng bị treo trên thời gian chạy với một UnsatisfiedLinkError, sẽ rất tuyệt nếu chúng ta có thể nói chuyện. – onizukaek