2015-09-18 2 views
0

Я использую gsoap для вызова wcf webservice. Мое требование: я должен использовать протокол ssl для обеспечения связи. Я прочитал an article как мою ссылку для конфигурации ssl.ошибка LNK2019: неразрешенный внешний символ _soap_ssl_init

Но при составлении я получаю следующее сообщение об ошибке:

Error 1 error LNK2019: unresolved external symbol _soap_ssl_init referenced in function "public: int __thiscall LogServicesFacade::SendFileToServer(char const *)" ([email protected]@@[email protected]) E:\Path\To\My\Solution.Project\LogServicesFacade.obj Solution.Project

Вот мой код:

_ns1__StoreEventFileResponse response; 
_ns1__StoreEventFile input; 
struct soap *soap = soap_new(); 

/*if (!sslInitiated) 
{*/ 
    soap_ssl_init(); 
    //if (soap_ssl_client_context(soap, SOAP_SSL_DEFAULT, NULL, NULL, 
     //"C:\\Path\\To\\Certs\\File\\cacerts.pem", NULL, NULL)) 
    //{ 
     soap_print_fault(soap, stderr); 
    //} 
//} 

я комментирую некоторые функции другой Ssl для уменьшения ошибок для простоты.

Update 1

Стоит отметить, что я использую VS 2013. Поэтому я использую Visual C++ как мой компилятор. Также я увидел gSOAP ssl document. Автор сказал, что я должен добавить в компилятор вариант DWITH_OPENSSL. Как я могу добавить это в компилятор VC?

+0

Do связывание с библиотекой, которая содержит функцию? –

+0

Я новичок в C++. Как я могу найти библиотеку этой функции, чтобы я мог ссылаться на нее? –

+1

И что касается 'DWITH_OPENSSL', я уверен, что автор фактически сказал' -DWITH_OPENSSL', где '-D' - общий флаг препроцессора (используемый, например, GCC и Clang), для определения макроса, что означает, что он определяет макрос 'WITH_OPENSSL'. Вы можете добавить это на вкладке препроцессора параметров проекта. –

ответ

0

Как и в code project article сказал, я смягчены ошибки, используя следующие шаги:

  • Right click on the project and select Properties from the right click menu. Under Configuration Properties, C/C++ and General, add include paths to gSOAP and Open SSL. Click Apply.

  • Under Configuration Properties, C/C++ and Preprocessor, add “WITH_OPENSSL” (to enable SSL in gSOAP) and “DEBUG” (to enable logging) to the list of Preprocessor Definitions. Click Apply.

  • Under Configuration Properties, Linker and General, add the path to the Open SSL binary directory, where the compiled lib files reside, to Additional Library Directories. Click Apply.

  • Under Configuration Properties, Linker and Input, add “libeay32.lib” and “ssleay32.lib” to Additional Dependencies. These
    are the Open SSL libraries. Click Apply.
Смежные вопросы