我尝试了How to build and integrate OpenSSL into your Android NDK project – Scottyab's blog,但是遇到了问题:
错误消息
openssl/x86_64/lib/libcrypto.a(eng_openssl.o):eng_openssl.c:function test_rc4_init_key: error: undefined reference to 'stderr'
openssl/x86_64/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function close_console: error: undefined reference to 'stdin'
openssl/x86_64/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function close_console: error: undefined reference to 'stderr'
openssl/x86_64/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'stdin'
openssl/x86_64/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'stderr'
我尝试了Compilation fails with android ndk r15b · Issue #3826 · openssl/openssl's comment,它确实消除了其中一个错误,但其他错误仍然存在。
Compilation fails with android ndk r15b · Issue #3826 · openssl/openssl's comment建议使用--deprecated-headers
,也没有用。
NDK: Unified Headers issue · Issue #445 · android-ndk/ndk's comment表示已解决。我尝试设置CFLAGS=-D__ANDROID_API__=$API
,但没有帮助。
我还尝试使用clang作为编译器,并获得
clang: error: unknown argument: '-mandroid'
Android Studio: clang error: unknown argument: '-mandroid''s answer对此有很好的解释。
实际上,faisal00813/openssl_for_ios_and_android: OpenSSL Library for iOS and Android分叉使用clang作为编译器,并且解决了-mandroid
错误,但仍然得到undefined reference to 'stdin'
答案 0 :(得分:1)