将libcurl引入C ++程序

时间:2009-09-15 22:00:25

标签: c++ c libcurl

我正在尝试将libcurl拉入一个大型C ++项目。

但是我无法编译它。我看到错误来自ws2def.h,winsock2.h和ws2tcpip.h

有些错误看起来像这样:

error C2061: syntax error : identifier 'iSockaddrLength'  ws2def.h  225
error C3646: 'LPSOCKADDR' : unknown override specifier    ws2def.h  225

..

error C2061: syntax error : identifier 'dwNumberOfProtocols'    winsock2.h  1259

我尝试在直接C模式下编译#include“curl.h”的文件,但这并没有解决问题。

3 个答案:

答案 0 :(得分:2)

您使用的是哪种C ++编译器?我根本没有ws2def.h。另外,请记住winsock.h和winsock2.h彼此不兼容,并且在您的代码有机会包含winsock2.h之前,默认情况下某些Win32头文件将包含winsock.h。因此,您可能必须通过在项目的编译条件中定义_WINSOCKAPI_来禁用winsock.h。

答案 1 :(得分:1)

在包含windows.h或任何libcurl标头之前尝试包含winsock2.h。不要问我为什么这有时会起作用,但确实如此。

答案 2 :(得分:0)

看起来有些东西正在引入与curl冲突的winsock定义。您可以尝试设置只是使用curl的项目吗?哦,我必须将CURL_STATICLIB添加到我的预处理器定义中以使其链接。