gsoap недефинирана препратка след успешно генериране на c++ код

Опитвам се да използвам код, генериран от 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-charge' 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

Някой има ли някакви подходи към това? Ще съм много благодарен за всякакви съвети!

Много благодаря предварително, meph

P.S.: Това ограничение на хипервръзката е КЪРВАВО досадно! Нямам НИКАКВИ хипервръзки в публикацията си, САМО пътеки на файловата система на linux. АРГХ!


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