android 呼叫openssl庫報錯

2021-10-18 22:40:00 字數 3359 閱讀 9303

failed: : && /***/android-sdk-macosx/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi --gcc-toolchain=/***/android-sdk-macosx/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64 --sysroot=/***/android-sdk-macosx/ndk-bundle/sysroot -fpic -isystem /***/android-sdk-macosx/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -d__android_api__=15 -g -dandroid -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb -wa,--noexecstack -wformat -werror=format-security -frtti -fexceptions -o0 -fno-limit-debug-info -wl,--exclude-libs,libgcc.a -wl,--exclude-libs,libatomic.a --sysroot /***/android-sdk-macosx/ndk-bundle/platforms/android-15/arch-arm -wl,--build-id -wl,--warn-shared-textrel -wl,--fatal-warnings -wl,--fix-cortex-a8 -wl,--no-undefined -wl,-z,noexecstack -qunused-arguments -wl,-z,relro -wl,-z,now -shared -wl,-soname,libnative-lib.so -o ../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so cmakefiles/native-lib.dir/src/main/cpp/native-lib.cpp.o cmakefiles/native-lib.dir/src/main/cpp/openssl-jni.c.o ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a ../../../../src/main/jnilibs/armeabi-v7a/lib/libssl.a -ldl -llog -latomic -lm "/***/android-sdk-macosx/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libgnustl_static.a" && : ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(cryptlib.o):cryptlib.c:function openssl_showfatal: error: undefined reference to 'stderr' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(cryptlib.o):cryptlib.c:function openssl_stderr: error: undefined reference to 'stderr' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function close_console: error: undefined reference to 'stdin' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function close_console: error: undefined reference to 'stderr' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'signal' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'tcgetattr' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'stdin' ../../../../src/main/jnilibs/armeabi-v7a/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'stderr' clang++: error: linker command failed with exit code 1 (use -v to see invocation) ninja: build stopped: subcommand failed.

原因:編譯openssl的時候指定的d__android_api和你的android端程式指定的__android_api不一致

解決方法

方法1,修改grandle檔案

minsdkversion和編譯openssl的d__android_api__相同
方法2,或者修改編譯openssl的編譯命令

./configure android-arm -d__android_api__=21

Linux下shell中採用openssl加密

參考 這篇文章寫得非常好,給滿分 下面附上自己對照著擼出來的 僅僅當作筆記記錄 bin bash password gmengine 123 echo password openssl enc aes 256 cbc s 1ae3b897 out pass.aes pass pass 1231kj1...

React Native呼叫Android介面

由於工作需要近期研究了下react native呼叫android介面,該文章將介紹自己在rn環境搭建和封裝第三方sdk介面以及rn呼叫android介面的趟坑過程。第一次寫部落格,寫的不好請大家勿噴 1 rn環境搭建 rn環境搭建有些繁瑣,但是按照官網文章一步一步操作完成是沒有太大問題的。2 嵌入...

android 呼叫其他程式

第一種 packagemanager pm this.getpackagemanager private void getintent packagemanager packagemanager,string path catch namenotfoundexception e 第二種 知道其他程式...