使用c++的gSOAP中的stdsoap2.cpp中存在编译错误

Compilation error in stdsoap2.cpp in gSOAP with c++

本文关键字:存在 编译 错误 cpp stdsoap2 c++ gSOAP 中的 使用      更新时间:2023-10-16

我正在使用gSOAP来使用我的wsdl。它一直工作得很好,直到我们输入的最后一步

c++ -o calcclient calcclient.cpp soapC.cpp soapcalcProxy.cpp stdsoap2.cpp

我已经将stdsoap2.cpp移动到我当前的工作目录中。执行上述命令后,我在stdsoap2.cpp中出现编译错误。cmd输出如下:

C:Usershamza.farrukheclipse-workspacegSOAP>c++ -o calcclient calcclient.cpp soapC.cpp soapcalcProxy.cpp stdsoap2.cpp
In file included from stdsoap2.cpp:65:
stdsoap2.cpp: In function 'char* soap_putsizesoffsets(soap*, const char*, const int*, const int*, int)':
stdsoap2.h:1551:118: warning: 'char* strncat(char*, const char*, size_t)' specified bound 1 equals source length [-Wstringop-overflow=]
# define soap_strncat(buf, len, src, num) ((buf) == NULL || ((size_t)(len) > strlen((buf)) + (size_t)(num) ? (strncat((buf), (src), (num)), (buf)[(size_t)(len) - 1] = '') : 1))
                                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
stdsoap2.cpp:3363:9: note: in expansion of macro 'soap_strncat'
(void)soap_strncat(soap->type, sizeof(soap->type), "]", 1);
^~~~~~~~~~~~
stdsoap2.cpp: In function 'char* soap_putoffsets(soap*, const int*, int)':
stdsoap2.h:1551:118: warning: 'char* strncat(char*, const char*, size_t)' specified bound 1 equals source length [-Wstringop-overflow=]
# define soap_strncat(buf, len, src, num) ((buf) == NULL || ((size_t)(len) > strlen((buf)) + (size_t)(num) ? (strncat((buf), (src), (num)), (buf)[(size_t)(len) - 1] = '') : 1))
                                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
stdsoap2.cpp:3386:11: note: in expansion of macro 'soap_strncat'
(void)soap_strncat(soap->arrayOffset, sizeof(soap->arrayOffset), "]", 1);
^~~~~~~~~~~~
stdsoap2.cpp: In function 'const char* soap_extend_url(soap*, const char*, const char*)':
stdsoap2.h:1551:118: warning: 'char* strncat(char*, const char*, size_t)' specified bound 1 equals source length [-Wstringop-overflow=]
# define soap_strncat(buf, len, src, num) ((buf) == NULL || ((size_t)(len) > strlen((buf)) + (size_t)(num) ? (strncat((buf), (src), (num)), (buf)[(size_t)(len) - 1] = '') : 1))
                                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
stdsoap2.cpp:8140:15: note: in expansion of macro 'soap_strncat'
(void)soap_strncat(soap->msgbuf, sizeof(soap->msgbuf), "&", 1);
^~~~~~~~~~~~
stdsoap2.cpp: In function 'const char* soap_extend_url_query(soap*, const char*, const char*)':
stdsoap2.h:1551:118: warning: 'char* strncat(char*, const char*, size_t)' specified bound 1 equals source length [-Wstringop-overflow=]
# define soap_strncat(buf, len, src, num) ((buf) == NULL || ((size_t)(len) > strlen((buf)) + (size_t)(num) ? (strncat((buf), (src), (num)), (buf)[(size_t)(len) - 1] = '') : 1))
                                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
stdsoap2.cpp:8169:11: note: in expansion of macro 'soap_strncat'
(void)soap_strncat(soap->msgbuf, sizeof(soap->msgbuf), "&", 1);
^~~~~~~~~~~~
stdsoap2.h:1551:118: warning: 'char* strncat(char*, const char*, size_t)' specified bound 1 equals source length [-Wstringop-overflow=]
# define soap_strncat(buf, len, src, num) ((buf) == NULL || ((size_t)(len) > strlen((buf)) + (size_t)(num) ? (strncat((buf), (src), (num)), (buf)[(size_t)(len) - 1] = '') : 1))
                                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
stdsoap2.cpp:8171:11: note: in expansion of macro 'soap_strncat'
(void)soap_strncat(soap->msgbuf, sizeof(soap->msgbuf), "?", 1);
^~~~~~~~~~~~
stdsoap2.cpp: In function 'void soap_url_query(soap*, const char*, const char*)':
stdsoap2.h:1551:118: warning: 'char* strncat(char*, const char*, size_t)' specified bound 1 equals source length [-Wstringop-overflow=]
# define soap_strncat(buf, len, src, num) ((buf) == NULL || ((size_t)(len) > strlen((buf)) + (size_t)(num) ? (strncat((buf), (src), (num)), (buf)[(size_t)(len) - 1] = '') : 1))
                                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
stdsoap2.cpp:8207:13: note: in expansion of macro 'soap_strncat'
(void)soap_strncat(soap->msgbuf, sizeof(soap->msgbuf), "&", 1);
^~~~~~~~~~~~
stdsoap2.cpp: In function 'int soap_element(soap*, const char*, int, const char*)':
stdsoap2.h:1551:118: warning: 'char* strncat(char*, const char*, size_t)' specified bound 1 equals source length [-Wstringop-overflow=]
# define soap_strncat(buf, len, src, num) ((buf) == NULL || ((size_t)(len) > strlen((buf)) + (size_t)(num) ? (strncat((buf), (src), (num)), (buf)[(size_t)(len) - 1] = '') : 1))
                                         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
stdsoap2.cpp:12798:11: note: in expansion of macro 'soap_strncat'
(void)soap_strncat(soap->tmpbuf, sizeof(soap->tmpbuf), "]", 1);
^~~~~~~~~~~~
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x284): undefined reference to `__imp_sendto'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x2ae): undefined reference to `__imp_send'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x37b): undefined reference to `__imp_sendto'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x3a5): undefined reference to `__imp_send'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x3ef): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x446): undefined reference to `__imp_send'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x463): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0xf2c): undefined reference to `__imp_recvfrom'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0xf54): undefined reference to `__imp_ntohl'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0xf87): undefined reference to `__imp_recv'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0xfa3): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6b15): undefined reference to `__imp_WSAStartup'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6c19): undefined reference to `__imp_inet_addr'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6c8b): undefined reference to `__imp_gethostbyname'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6c9f): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6e42): undefined reference to `__imp_htons'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6ea1): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6eb3): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6f7a): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x6f8c): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x70c1): undefined reference to `__imp_socket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x70e0): undefined reference to `__imp_socket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x70f7): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7198): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x71aa): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7238): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7255): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x72ea): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7307): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x738f): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x73ac): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7434): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7451): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x74d8): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x74f5): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x75a1): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x75b3): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x766b): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x767d): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x774c): undefined reference to `__imp_htons'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x776a): undefined reference to `__imp_bind'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x777c): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7889): undefined reference to `__imp_htons'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x791b): undefined reference to `__imp_htons'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x797b): undefined reference to `__imp_ioctlsocket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x79a0): undefined reference to `__imp_ioctlsocket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x79c8): undefined reference to `__imp_connect'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x79de): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7ac2): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7b62): undefined reference to `__imp_getsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7b9f): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7d34): undefined reference to `__imp_ioctlsocket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x7d59): undefined reference to `__imp_ioctlsocket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8085): undefined reference to `__imp_select'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x809d): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x814c): undefined reference to `__WSAFDIsSet'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8187): undefined reference to `__WSAFDIsSet'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x81c2): undefined reference to `__WSAFDIsSet'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8239): undefined reference to `__imp_accept'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x82ea): undefined reference to `__imp_closesocket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8317): undefined reference to `__imp_shutdown'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x83fc): undefined reference to `__imp_socket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8424): undefined reference to `__imp_socket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8459): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8504): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8521): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x85ba): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x85d7): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8651): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x866e): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x86e8): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8705): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x877e): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x879b): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x888b): undefined reference to `__imp_htonl'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x88a8): undefined reference to `__imp_htons'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x88f5): undefined reference to `__imp_bind'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8907): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8972): undefined reference to `__imp_listen'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x898f): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8ad1): undefined reference to `__imp_recv'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8b24): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8db6): undefined reference to `__imp_ntohl'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8e3e): undefined reference to `__imp_ntohs'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8eb9): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8ecb): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8f54): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8f71): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x8ffc): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x9019): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x909c): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x90b9): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x913c): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x9159): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x91cd): undefined reference to `__imp_setsockopt'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x91df): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x928b): undefined reference to `__imp_ioctlsocket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x92b7): undefined reference to `__imp_ioctlsocket'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x92cd): undefined reference to `__imp_WSAGetLastError'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x9556): undefined reference to `__imp_WSACleanup'
C:UsersHAMZA~1.FARAppDataLocalTempcczqH2MG.o:stdsoap2.cpp:(.text+0x28c56): undefined reference to `__imp_recv'
collect2.exe: error: ld returned 1 exit status

因为没有链接Windows套接字"ws2_32.lib"库,所以会出现链接器错误。

您应该将它添加到c++命令行中,或者将其添加到.cpp文件中:

#pragma comment(lib, "Ws2_32.lib")

你能试试吗:

c++ -o calcclient calcclient.cpp soapC.cpp soapcalcProxy.cpp stdsoap2.cpp -lwsock32
c++ -o calcclient calcclient.cpp soapC.cpp soapcalcProxy.cpp stdsoap2.cpp -lws2_32