OpenSSL problem again

If you don’t use github to synchronize the files, you can download the zip file and extract the corresponding libs. But please take care of the version.

use the new lib and get error

in function ossl_recv:openssl.c(.text+0x10): error: undefined reference to ‘ERR_clear_error’
in function ossl_recv:openssl.c(.text+0x28): error: undefined reference to ‘SSL_read’
in function ossl_recv:openssl.c(.text+0x3c): error: undefined reference to ‘SSL_get_error’
in function ossl_recv:openssl.c(.text+0x78): error: undefined reference to ‘ERR_get_error’
in function ossl_recv:openssl.c(.text+0x90): error: undefined reference to ‘ERR_error_string’
in function ossl_send:openssl.c(.text+0xc8): error: undefined reference to ‘ERR_clear_error’
in function ossl_send:openssl.c(.text+0xe0): error: undefined reference to ‘SSL_write’
in function ossl_send:openssl.c(.text+0xf8): error: undefined reference to ‘SSL_get_error’
in function ossl_send:openssl.c(.text+0x138): error: undefined reference to ‘ERR_get_error’
in function ossl_send:openssl.c(.text+0x140): error: undefined reference to ‘ERR_error_string’
in function ossl_seed:openssl.c(.text+0x474): error: undefined reference to ‘RAND_load_file’
in function ossl_seed:openssl.c(.text+0x47a): error: undefined reference to ‘RAND_status’
in function ossl_seed:openssl.c(.text+0x486): error: undefined reference to ‘RAND_egd’
in function ossl_seed:openssl.c(.text+0x490): error: undefined reference to ‘RAND_status’
in function ossl_seed:openssl.c(.text+0x49c): error: undefined reference to ‘RAND_bytes’
in function ossl_seed:openssl.c(.text+0x4ac): error: undefined reference to ‘RAND_add’
in function ossl_seed:openssl.c(.text+0x4b0): error: undefined reference to ‘RAND_status’
in function ossl_seed:openssl.c(.text+0x4c8): error: undefined reference to ‘RAND_file_name’
in function ossl_seed:openssl.c(.text+0x4d8): error: undefined reference to ‘RAND_load_file’
in function ossl_seed:openssl.c(.text+0x4de): error: undefined reference to ‘RAND_status’

I will ask @owen to take a look.

@jw72jw
Have you also copied the libssl.a and libcrypto.a?

@jw72jw You should replace the whole folder. As i said, OpenSSL is not included in libcurl.a, and Android.mk is modified too.

@jw72jw
And don’t forget to update the Android.mk file of libCURL.

I replace all folder but also get error

I found mk of my project write like this.Need to modify?

LOCAL_LDLIBS :=
-L$(call host-path, $(LOCAL_PATH)/…/…/liblua/obj/local/$(TYPE_ARMEABI)) -llua
-L$(call host-path, $(LOCAL_PATH)/…/…/libextension/obj/local/$(TYPE_ARMEABI)) -lextension
-L$(call host-path, $(LOCAL_PATH)/…/…/cocos2dx/obj/local/$(TYPE_ARMEABI)) -lcocos2d
-L$(call host-path, $(LOCAL_PATH)/…/…/cocosdenshion/obj/local/$(TYPE_ARMEABI)) -lcocosdenshion
-L$(call host-path, $(THIRD_PATH)/libcurl/libs/$(TYPE_ARMEABI)) -lcurl
-L$(call host-path, $(THIRD_PATH)/libjpeg/libs/$(TYPE_ARMEABI)) -ljpeg
-L$(call host-path, $(THIRD_PATH)/libpng/libs/$(TYPE_ARMEABI)) -lpng
-L$(call host-path, $(THIRD_PATH)/libtiff/libs/$(TYPE_ARMEABI)) -ltiff
-L$(call host-path, $(THIRD_PATH)/libwebp/libs/$(TYPE_ARMEABI)) -lwebp
-lGLESv2
-llog \

@jw72jw
Yes, you need add -lssl -lcrypto at the end of -lcurl

//add these two lines after  "-L$(call host-path, $(THIRD_PATH)/libcurl/libs/$(TYPE_ARMEABI)) -lcurl \"
-L$(call host-path, $(THIRD_PATH)/libcurl/libs/$(TYPE_ARMEABI)) -lssl \
-L$(call host-path, $(THIRD_PATH)/libcurl/libs/$(TYPE_ARMEABI)) -lcrypto \

yes I got success
Thank you

edit
maybe we change the proj mk in the past, and we add all static by this way.

so I must add
-L$(call host-path, $(THIRD_PATH)/libcurl/libs/$(TYPE_ARMEABI)) -lssl
-L$(call host-path, $(THIRD_PATH)/libcurl/libs/$(TYPE_ARMEABI)) -lcrypto \

after
-L$(call host-path, $(THIRD_PATH)/libcurl/libs/$(TYPE_ARMEABI)) -lcurl \

in my proj mk file

if any body meet a error like me,I think you should find out how your proj use the curl lib.And you can add the crypto and ssl lib like it.
@MehulDodiya30
@nitinchauhan3046

i got error after replacing …cocos2d-x v2

curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0xa0): error: undefined reference to ‘DES_set_odd_parity’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0xac): error: undefined reference to ‘DES_set_key’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0xc0): error: undefined reference to ‘DES_ecb_encrypt’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0x138): error: undefined reference to ‘DES_set_odd_parity’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0x144): error: undefined reference to ‘DES_set_key’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0x15c): error: undefined reference to ‘DES_ecb_encrypt’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0x1d4): error: undefined reference to ‘DES_set_odd_parity’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0x1e0): error: undefined reference to ‘DES_set_key’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_lm_resp:curl_ntlm_core.c(.text.Curl_ntlm_core_lm_resp+0x1f8): error: undefined reference to ‘DES_ecb_encrypt’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_mk_lm_hash:curl_ntlm_core.c(.text.Curl_ntlm_core_mk_lm_hash+0xe4): error: undefined reference to ‘DES_set_odd_parity’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_mk_lm_hash:curl_ntlm_core.c(.text.Curl_ntlm_core_mk_lm_hash+0xf0): error: undefined reference to ‘DES_set_key’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_mk_lm_hash:curl_ntlm_core.c(.text.Curl_ntlm_core_mk_lm_hash+0x104): error: undefined reference to ‘DES_ecb_encrypt’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_mk_nt_hash:curl_ntlm_core.c(.text.Curl_ntlm_core_mk_nt_hash+0x7c): error: undefined reference to ‘MD4_Init’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_mk_nt_hash:curl_ntlm_core.c(.text.Curl_ntlm_core_mk_nt_hash+0x8c): error: undefined reference to ‘MD4_Update’
curl.a(libcurl_la-curl_ntlm_core.o): in function Curl_ntlm_core_mk_nt_hash:curl_ntlm_core.c(.text.Curl_ntlm_core_mk_nt_hash+0x98): error: undefined reference to ‘MD4_Final’

Please explain full description solution for cocos2d-x 2.2.6 OpenSSL Problem

Any one done then
Please Upload Your demo project with new openssl
Thank in advance

@jw72jw

This is my projects android.mk file …
now how to done this ???

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

LOCAL_SRC_FILES := hellocpp/main.cpp
…/…/Classes/AppDelegate.cpp
…/…/Classes/HelloWorldScene.cpp
…/…/Classes/LevelScene_3.cpp
…/…/Classes/LevelScene_2.cpp
…/…/Classes/LevelScene1.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/…/…/Classes

LOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
LOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_static
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,cocos2dx)
$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
$(call import-module,CocosDenshion/android)
$(call import-module,extensions)
$(call import-module,external/Box2D)
$(call import-module,external/chipmunk)

@MehulDodiya30

Have you copy all the ssl.a and crypto.a to the cocos2dx/platform/third_party/android/prebuilt/libcurl/libs folder?

Yes @owen whole folder i replied . but still Gives Error …

What’s the content in cocos2dx/platform/third_party/android/prebuilt/libcurl/Android.mk? @MehulDodiya30

$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)
this line will load the mk in the path
it looks like the mk or the .a problem

Can anyone give a feedback whether the google warning will disappear after you update the libcurl? And your version v2.x or v3.x ?

Hi zhangxm, do you think it is better to provide the updated single libcurl.a same as two years ago. So, we can just copy and replace it. No need to handle makefile and other compile issue.
Thanks.

@dirtypolarbear Yep, it is better to do like that, but the previous version is compiled manually and a little hack, and we can’t find the way to do like that now. And because the Android.mk is modified too, so i think you guys that invoke like this $(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl) will not affect.