gsoap неопределенная ссылка после успешного создания кода С++

Я пытаюсь использовать сгенерированный gsoap код для использования веб-службы ASP .NET из источников C++ из системы Linux.

Я успешно создал код из своего wsdl-файла, используя «wsdl2h -o» и «soapcpp2 -C -i», и теперь пытаюсь скомпилировать простой клиент.

Согласно документации мыла, я попытался скомпилировать простой клиент: пытаясь скомпилировать его, используя:

c++ -o vts_webservice vts_webservice.cpp -lgsoap

Я получаю неопределенные ссылки на ошибки: Исходный код:

#include "soapBasicHttpBinding_USCORECollectorServiceProxy.h"
#include "BasicHttpBinding_USCORECollectorService.nsmap"

int main()
{
        BasicHttpBinding_USCORECollectorServiceProxy collectorService;
        _ns1__GetAvailableConnections *avConn;
        _ns1__GetAvailableConnectionsResponse *avConnResp;

        if(collectorService.GetAvailableConnections(avConn, avConnResp) == SOAP_OK)
        {
                std::cout << "foo" << std::endl;
        }
        else
                std::cout << "bar..." << std::endl;
                //collectorService.soap_stream_fault(std::cerr);

        return 0;
}

C ++ -o vts_webservice vts_webservice.cpp -lgsoap TMP cc3uVBgk.o (.text + 0x1e): В функции main': : undefined reference to BasicHttpBinding_USCORECollectorServiceProxy :: BasicHttpBinding_USCORECollectorServiceProxyin заряда»TMP cc3uVBgk.o (.text + 0x40): В функции main': : undefined reference to BasicHttpBinding_USCORECollectorServiceProxy :: GetAvailableConnections ( ns1_GetAvailableConnections*, ns1_GetAvailableConnectionsResponse*)' tmp-cc3uVBgk.o(.text+0x9c): В функции main': : undefined reference to BasicHttpBinding_USCORECollectorServiceProxy::~BasicHttpBinding_USCORECollectorServiceProxy

У кого-нибудь есть подходы по этому поводу? Буду очень благодарен за любые подсказки!

Заранее большое спасибо, меф

P.S.: Это ограничение по гиперссылкам ОЧЕНЬ раздражает! У меня нет НИКАКИХ гиперссылок в моем сообщении, ТОЛЬКО linux-filesystem-paths. АРХ!


person Andreas Schnieders    schedule 02.04.2012    source источник


Ответы (1)


Я не уверен, но из того, что вы написали, следует, что вы забыли включить файл soapC.cpp на этапе компиляции ?? Когда я создаю свои приложения, я обычно получаю что-то вроде

    g++ -FLAGS main.cpp soapC.cpp soapProxyClass.cpp -o outputApp

Возможно, вы уже делаете это, но это не очевидно (по крайней мере, для меня) из вашего поста.

person mathematician1975    schedule 22.04.2012