Клиентская часть gSoap, LNK2019, Qt

Я новичок (знаю только, как создать полурабочий сервер) в gSoap. И, как таковой, на клиентской стороне gSoap, поэтому у меня проблема с несколькими LNK2019.

Но обо всем по порядку

Прежде всего, я сгенерировал KursServer.h с помощью этой команды:

wsdl2h -s -o KursServer.h KursWeb.wsdl

KursWeb.wsdl был сгенерирован, затем я разработал свой сервер, и был создан из моей шапки с необходимыми функциями, и он отлично работает со мной.

вот "код" этого файла:

//gsoap WebFunctions service name: KursWeb
//gsoap WebFunctions service location: http://192.168.0.101:18083
int WebFunctions__delivered(char* UCID, char* DeviceNum, void);
int WebFunctions__established(char* UCID, char* DeviceNum, void);
int WebFunctions__connectionCleared(char* UCID,char* DeviceNum, void);
int WebFunctions__transfered(char* UCID, char* transNum1, char* transNum2, char* destenation, void);
int WebFunctions__holded(char* UCID, char* DeviceNum, void);
int WebFunctions__retrieved(char* UCID, char* DeviceNum, void);
int WebFunctions__setContextParametr(char* UCID, char* DeviceNum, char* Parametr, void);
int WebFunctions__getContextParametr(char* UCID, char* DeviceNum, char* result);
int WebFunctions__contextCheck(char* UCID, bool& ok);

После этого я сделал эту команду:

soapcpp2 -i -C -L -IC:/Users/Senso/Desktop/gsoap_2.8.30/gsoap-2.8/gsoap/import KursServer.h

и создал кое-что на стороне клиента: soapKursWebProxy(h и cpp), soapH, soapC, а также включил stdsoap2 (h и cpp)

после этого я создал свой проект Qt, включил все файлы (все они находятся в одной папке с мылом внутри моего проекта) и все включения, как я сделал для сервера -

main.cpp

#include "mainwindow.h"
#include <QApplication>
#include "soap/KursWeb.nsmap"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

главное окно.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "soap/soapKursWebProxy.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    /*just test*/

}

главное окно.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

И после того, как я попытался скомпилировать это, я получаю массу ошибок, как это (все ссылаются на ns1):

soapKursWebProxy.obj:-1: error LNK2019: unresolved external symbol "void __cdecl soap_serialize___ns1__contextCheck(struct soap *,struct __ns1__contextCheck const *)" (?soap_serialize___ns1__contextCheck@@YAXPEAUsoap@@PEBU__ns1__contextCheck@@@Z) в функции "public: virtual int __cdecl KursWebProxy::contextCheck(char const *,char const *,class _ns2__contextCheck *,class _ns2__contextCheckResponse &)" (?contextCheck@KursWebProxy@@UEAAHPEBD0PEAV_ns2__contextCheck@@AEAV_ns2__contextCheckResponse@@@Z)

а вот так:

soapKursWebProxy.obj:-1: error LNK2019:  unresolved external symbol soap_faultstring referenced in function "public: virtual char const * __cdecl KursWebProxy::soap_fault_string(void)" (?soap_fault_string@KursWebProxy@@UEAAPEBDXZ)

и ОЧЕНЬ странно:

stdsoap2.obj:-1:  error LNK2019: unresolved external symbol soap_faultcode referenced in function soap_set_fault

Должен ли я определить все свои функции, как я это сделал на стороне сервера, или как мне нужно с ними обращаться?

Заранее спасибо!

EDIT: Пытался использовать компилятор MinGw, дал мне

C:\Users\Senso\Documents\Client_MVSC_Kurs_III\soap\stdsoap2.cpp:12627: error: 'wctomb_s' was not declared in this scope
             wctomb_s(&m, buf, sizeof(buf), (wchar_t)(c & 0x7FFFFFFF));
                                                                 ^

Кроме того, некоторые другие компиляторы MSVC просто падают при сборке.


person Senso Hakai    schedule 11.05.2016    source источник


Ответы (1)


Внезапно я решаю это - я использовал «плохой» компилятор, потому что после переустановки Qt все заработало нормально. Люблю Qt за эти ошибки.

person Senso Hakai    schedule 11.05.2016