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

I am using gSOAP to consume my wsdl. It worked fine till the last step when we type

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

I have already moved stdsoap2.cpp to my current working directory. After executing the above command, I am having compilation errors in stdsoap2.cpp. cmd output is as follows:

C:\Users\hamza.farrukh\eclipse-workspace\gSOAP>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] = '\0') : 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] = '\0') : 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] = '\0') : 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] = '\0') : 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] = '\0') : 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] = '\0') : 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] = '\0') : 1)) ~~~~~~~^~~~~~~~~~~~~~~~~~~~~ stdsoap2.cpp:12798:11: note: in expansion of macro 'soap_strncat' (void)soap_strncat(soap->tmpbuf, sizeof(soap->tmpbuf), "]", 1); ^~~~~~~~~~~~ C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x284): undefined reference to __imp_sendto' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x2ae): undefined reference to__imp_send' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x37b): undefined reference to __imp_sendto' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x3a5): undefined reference to__imp_send' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x3ef): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x446): undefined reference to__imp_send' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x463): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0xf2c): undefined reference to__imp_recvfrom' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0xf54): undefined reference to __imp_ntohl' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0xf87): undefined reference to__imp_recv' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0xfa3): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6b15): undefined reference to__imp_WSAStartup' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6c19): undefined reference to __imp_inet_addr' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6c8b): undefined reference to__imp_gethostbyname' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6c9f): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6e42): undefined reference to__imp_htons' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6ea1): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6eb3): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6f7a): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x6f8c): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x70c1): undefined reference to __imp_socket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x70e0): undefined reference to__imp_socket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x70f7): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7198): undefined reference to__imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x71aa): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7238): undefined reference to__imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7255): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x72ea): undefined reference to__imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7307): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x738f): undefined reference to__imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x73ac): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7434): undefined reference to__imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7451): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x74d8): undefined reference to__imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x74f5): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x75a1): undefined reference to__imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x75b3): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x766b): undefined reference to__imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x767d): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x774c): undefined reference to__imp_htons' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x776a): undefined reference to __imp_bind' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x777c): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7889): undefined reference to __imp_htons' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x791b): undefined reference to__imp_htons' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x797b): undefined reference to __imp_ioctlsocket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x79a0): undefined reference to__imp_ioctlsocket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x79c8): undefined reference to __imp_connect' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x79de): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7ac2): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7b62): undefined reference to__imp_getsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7b9f): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7d34): undefined reference to__imp_ioctlsocket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x7d59): undefined reference to __imp_ioctlsocket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8085): undefined reference to__imp_select' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x809d): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x814c): undefined reference to__WSAFDIsSet' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8187): undefined reference to __WSAFDIsSet' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x81c2): undefined reference to__WSAFDIsSet' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8239): undefined reference to __imp_accept' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x82ea): undefined reference to__imp_closesocket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8317): undefined reference to __imp_shutdown' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x83fc): undefined reference to__imp_socket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8424): undefined reference to __imp_socket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8459): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8504): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8521): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x85ba): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x85d7): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8651): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x866e): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x86e8): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8705): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x877e): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x879b): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x888b): undefined reference to __imp_htonl' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x88a8): undefined reference to__imp_htons' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x88f5): undefined reference to __imp_bind' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8907): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8972): undefined reference to __imp_listen' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x898f): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8ad1): undefined reference to __imp_recv' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8b24): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8db6): undefined reference to __imp_ntohl' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8e3e): undefined reference to__imp_ntohs' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8eb9): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8ecb): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8f54): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8f71): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x8ffc): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x9019): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x909c): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x90b9): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x913c): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x9159): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x91cd): undefined reference to __imp_setsockopt' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x91df): undefined reference to__imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x928b): undefined reference to __imp_ioctlsocket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x92b7): undefined reference to__imp_ioctlsocket' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x92cd): undefined reference to __imp_WSAGetLastError' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x9556): undefined reference to__imp_WSACleanup' C:\Users\HAMZA~1.FAR\AppData\Local\Temp\cczqH2MG.o:stdsoap2.cpp:(.text+0x28c56): undefined reference to `__imp_recv' collect2.exe: error: ld returned 1 exit status

1 answer

  • answered 2018-07-12 08:30 roalz

    You get linker errors because you are not linking the Windows socket "ws2_32.lib" library.

    You should add it to the c++ command-line, or alternatively, add this to your .cpp file:

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