3.17.1版本android studio 链接curl报错。 d-x/external/curl/prebuilt/android/x86/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function ossl_connect_common: error: undefined reference to 'PKCS12_parse'

我也遇到这个问题,楼主解决了吗?分享下

同样遇到,有解决的求分享下

CMake我遇到了好几个问题…解决了2个后面的解决不了我就放弃了,gradle有个宏切NDK编译就好了,NDK编译问题就一个长路径问题

坑了两天,自己解决了,在主CMakeLists.txt中最后添加curl静态库链接
add_library(curl STATIC IMPORTED GLOBAL)
set_target_properties(curl
PROPERTIES IMPORTED_LOCATION "{COCOS2DX_ROOT_PATH}/external/curl/prebuilt/android/armeabi-v7a/libcurl.a" ) target_link_libraries({APP_NAME} curl)

1赞

我也遇到curl链接出错:
部分log如下:
FAILED: …/…/…/…/build/intermediates/cmake/debug/obj/armeabi-v7a/libMyGame.so
cmd.exe /C “cd . && C:\Env\android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=armv7-none-linux-androideabi16 --gcc-toolchain=C:/Env/android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64 --sysroot=C:/Env/android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/sysroot -fPIC -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mfpu=vfpv3-d16 -fno-addrsig -march=armv7-a -mthumb -mfpu=neon -Wa,–noexecstack -Wformat -Werror=format-security -stdlib=libc++ -frtti -fexceptions -fsigned-char -O0 -fno-limit-debug-info -Wl,–exclude-libs,libgcc.a -Wl,–exclude-libs,libatomic.a -static-libstdc++ -Wl,–build-id -Wl,–warn-shared-textrel -Wl,–fatal-warnings -Wl,–exclude-libs,libunwind.a -Wl,–no-undefined -Qunused-arguments -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libMyGame.so -o …\build\intermediates\cmake\debug\obj\armeabi-v7a\libMyGame.so @CMakeFiles/MyGame.rsp && cd .”
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_init: error: undefined reference to ‘OPENSSL_load_builtin_modules’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_init: error: undefined reference to ‘ENGINE_load_builtin_engines’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_init: error: undefined reference to ‘CONF_modules_load_file’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine: error: undefined reference to ‘ENGINE_by_id’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine: error: undefined reference to ‘ENGINE_finish’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine: error: undefined reference to ‘ENGINE_free’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine: error: undefined reference to ‘ENGINE_init’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine: error: undefined reference to ‘ENGINE_free’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine: error: undefined reference to ‘ERR_get_error’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine: error: undefined reference to ‘ERR_error_string_n’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine_default: error: undefined reference to ‘ENGINE_set_default’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_set_engine_default: error: undefined reference to ‘ENGINE_get_id’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_engines_list: error: undefined reference to ‘ENGINE_get_first’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_engines_list: error: undefined reference to ‘ENGINE_get_id’
…/…/…/…/…/…/cocos2d/external/curl/prebuilt/android/armeabi-v7a/libcurl.a(libcurl_la-openssl.o):vtls/openssl.c:function Curl_ossl_engines_list: error: undefined reference to ‘ENGINE_get_next’

我查了external下面的libcrypto和libss里面都没有定义OPENSSL_load_builtin_modules

fy@FY-Gnome:/media/sf_C_DRIVE/WorkSpace/Cocos2d-x/ShenQiMaJiang/cocos2d/external/openssl/prebuilt/android/armeabi-v7a$ objdump libcrypto.a -t | grep “OPENSSL_load_builtin_modules”
00000000 g F .text 0000001c OPENSSL_load_builtin_modules
00000000 UND 00000000 OPENSSL_load_builtin_modules
fy@FY-Gnome:/media/sf_C_DRIVE/WorkSpace/Cocos2d-x/ShenQiMaJiang/cocos2d/external/openssl/prebuilt/android/armeabi-v7a$ objdump libssl.a -t | grep “OPENSSL_load_builtin_modules”
fy@FY-Gnome:/media/sf_C_DRIVE/WorkSpace/Cocos2d-x/ShenQiMaJiang/cocos2d/external/openssl/prebuilt/android/armeabi-v7a$ objdump libssl.a -t | grep “OPENSSL_load_builtin_modules”
fy@FY-Gnome:/media/sf_C_DRIVE/WorkSpace/Cocos2d-x/ShenQiMaJiang/cocos2d/external/openssl/prebuilt/android/armeabi-v7a$

请问楼主,这个是不是cocos2d自带的android库编译有问题?