Внедрение libcurl в программу на C ++ - PullRequest
1 голос
/ 16 сентября 2009

Я пытаюсь вытащить 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

Я попытался скомпилировать файл #include "curl.h" в прямом режиме C, но это не решило проблему.

Ответы [ 3 ]

2 голосов
/ 16 сентября 2009

Какой компилятор C ++ вы используете? У меня вообще нет ws2def.h. Кроме того, имейте в виду, что winsock.h и winsock2.h несовместимы друг с другом, и некоторые из заголовочных файлов Win32 будут включать winsock.h по умолчанию, прежде чем ваш код сможет включить winsock2.h. Поэтому вам, возможно, придется отключить winsock.h, определив _WINSOCKAPI_ в условных выражениях компилятора вашего проекта.

1 голос
/ 16 сентября 2009

Попробуйте включить windows.h ДО того, как вы включите winsock2.h или любые заголовки libcurl. Не спрашивайте меня, почему это иногда работает, но это работает.

0 голосов
/ 16 сентября 2009

Похоже, что что-то еще вносит определения winsock, которые конфликтуют с curl. Можете ли вы попытаться настроить проект, в котором просто использует curl? О, я должен был добавить CURL_STATICLIB к моим определениям препроцессора, чтобы сделать его связующим.

...