Erreur Compilation Webservice Gsoap Open SSL

Résolu
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 17 juil. 2014 à 12:18
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016 - 19 juil. 2014 à 11:14
Bonjour,

Je suis en train de développer un client Web Service qui doit se connecter au serveur via openssl.

J'ai utilisé Gsoap pour générer les fichier. Pour la consommation du Web Service je dois tout d'abord définir le préprocesseur WITH_OPENSSL tel que l'indique la documentation http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.22.
ensuite integrer OpenSSL dans le client, j'ai donc copié le dossier include d'openSSl sous mon répertoire include de Visual Studio.

La je compile, le Macro WITH_OPENSSL est bien reconnu et le code qui est relatif à openSSl se compile mais là j'ai un problème.
Une Erreur d'édition de lien pour toute fonction ou structure relative à OpenSSL.
J'ai cherché donc les bibliothèques à utiliser que j'ai téléchargé à partir d'ici
http://slproweb.com/products/Win32OpenSSL.html
mais il n'ont pas été très utiles aucune importation n'a été faite et j'ai toujours mes erreur de linking.

Quelqu'un a une idée sur l'étape que j'ai zappé parce que là je commence à bloquer :((

Merci Beaucoup

Ci dessous la liste d'erreur


1>------ Début de la génération : Projet : WSClient, Configuration : Debug Win32 ------
1>LINK : warning LNK4199: /DELAYLOAD:libssl32.dll ignoré ; aucune importation trouvée à partir de libssl32.dll
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _sk_num référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _sk_value référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _sk_pop_free référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _CRYPTO_free référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _BIO_new_file référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _BIO_free référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _BIO_read référencé dans la fonction _frecv
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _BIO_write référencé dans la fonction _fsend
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _BIO_new_socket référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ERR_get_error référencé dans la fonction _soap_ssl_error
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ERR_peek_error référencé dans la fonction _soap_ssl_error
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ERR_clear_error référencé dans la fonction _soap_begin_recv
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ERR_error_string référencé dans la fonction _soap_ssl_error
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ERR_error_string_n référencé dans la fonction _soap_ssl_error
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ERR_remove_state référencé dans la fonction _soap_done
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _RAND_pseudo_bytes référencé dans la fonction _soap_rand
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _RAND_seed référencé dans la fonction _soap_ssl_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _RAND_load_file référencé dans la fonction _soap_ssl_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _RAND_status référencé dans la fonction _soap_ssl_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ASN1_STRING_to_UTF8 référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ASN1_item_free référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _ASN1_item_d2i référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _OBJ_nid2sn référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _OBJ_obj2nid référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _OPENSSL_add_all_algorithms_noconf référencé dans la fonction _soap_ssl_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _RSA_generate_key référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _RSA_free référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _DH_free référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _DH_generate_parameters référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _DH_check référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_STORE_CTX_get_error référencé dans la fonction _ssl_verify_callback_allow_expired_certificate
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_STORE_CTX_set_error référencé dans la fonction _ssl_verify_callback_allow_expired_certificate
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_verify_cert_error_string référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_free référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_get_subject_name référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_NAME_get_index_by_NID référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_NAME_get_entry référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_NAME_ENTRY_get_data référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_get_ext_count référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_get_ext référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509_EXTENSION_get_object référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _PEM_read_bio_DHparams référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_new référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_free référencé dans la fonction _soap_done
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_want référencé dans la fonction _tcp_disconnect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_clear référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_set_bio référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_use_PrivateKey_file référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_use_certificate_chain_file référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_load_client_CA_file référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_load_error_strings référencé dans la fonction _soap_ssl_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_SESSION_free référencé dans la fonction _soap_done
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_set_session référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_get_peer_certificate référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_set_verify référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_set_verify_depth référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_set_default_passwd_cb référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_set_default_passwd_cb_userdata référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_set_session_id_context référencé dans la fonction _soap_ssl_server_context
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_new référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_free référencé dans la fonction _soap_done
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_accept référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_connect référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_read référencé dans la fonction _frecv
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_peek référencé dans la fonction _soap_poll
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_write référencé dans la fonction _fsend
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_ctrl référencé dans la fonction _soap_ssl_server_context
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_get_error référencé dans la fonction _frecv
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSLv23_method référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_shutdown référencé dans la fonction _tcp_disconnect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_set_client_CA_list référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_library_init référencé dans la fonction _soap_ssl_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_dup référencé dans la fonction _soap_copy_stream
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_set_default_verify_paths référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_CTX_load_verify_locations référencé dans la fonction _ssl_auth_init
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_get1_session référencé dans la fonction _tcp_disconnect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_state référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _SSL_get_verify_result référencé dans la fonction _soap_ssl_accept
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509V3_conf_free référencé dans la fonction _tcp_connect
1>stdsoap2.obj : error LNK2019: symbole externe non résolu _X509V3_EXT_get référencé dans la fonction _tcp_connect
1>c:\users\aymen\documents\visual studio 2012\Projects\WSClient\Debug\WSClient.exe : fatal error LNK1120: 80 externes non résolus
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========


2 réponses

cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
17 juil. 2014 à 12:50
il fallait utiliser les fichier .lib de ce lien
http://gnuwin32.sourceforge.net/packages/openssl.htm
et choisir Developers File
Mais là j'ai un autre lot d'erreur


1>------ Début de la génération : Projet : WSClient, Configuration : Debug Win32 ------
1>libcrypto.a(cryptlib.o) : error LNK2019: symbole externe non résolu __alloca référencé dans la fonction _OPENSSL_isservice
1>libcrypto.a(bn_prime.o) : error LNK2001: symbole externe non résolu __alloca
1>libcrypto.a(err_prn.o) : error LNK2001: symbole externe non résolu __alloca
1>libcrypto.a(sha512.o) : error LNK2001: symbole externe non résolu __alloca
1>libcrypto.a(b_print.o) : error LNK2019: symbole externe non résolu ___umoddi3 référencé dans la fonction _fmtint
1>libcrypto.a(bn_word.o) : error LNK2001: symbole externe non résolu ___umoddi3
1>libcrypto.a(b_print.o) : error LNK2019: symbole externe non résolu ___udivdi3 référencé dans la fonction _fmtint
1>c:\users\aymen\documents\visual studio 2012\Projects\WSClient\Debug\WSClient.exe : fatal error LNK1120: 3 externes non résolus
========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========
0
cs_aymen87 Messages postés 109 Date d'inscription samedi 3 novembre 2007 Statut Membre Dernière intervention 4 février 2016
19 juil. 2014 à 11:14
Après 2 jour de galère j'ai trouvé une solution.
Il ne fallait pas utiliser directement les bibliothèque du site (ils étaient dédié à un autre compilateur,celui de linux peut être).
il faut régénérer les .lib à partir du code du openSSl en suivant à la lettre les étape du lien
http://wiki.openuru.org/index.php?title=Build_OpenSSL_with_MS_Visual_C%2B%2B
ça va générer deux lib
libeay32.lib, ssleay32.lib
et deux dll
libeay32.dll, ssleay32.dll

il suffit de les référencer dans le cient WebServices et comme par magie ça marche :)))



--
0
Rejoignez-nous