Неопределенная ссылка / неразрешенный внешний символ - PullRequest
0 голосов
/ 17 января 2012

Я пытаюсь использовать файл заголовка WinSock.h, но я получаю одну из следующих ошибок: в VS2010 (C ++):

Unresolved External Symbol to [the function included in winsock.g, e.g socket()]

в командной строке gcc (C):

Undefined Reference to [the function included in winsock.g, e.g socket()]

код прост: просто включив заголовочный файл Winsock.h, а затем

SOCKET s =  socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);

я получаю сообщение об ошибке socket() & closesocket() функции ...!Я искал в Stackoverflow и нашел несколько тем по этому поводу, но все они предложили внести изменения в заголовочный файл.Я не могу изменить WinSock.h здесь, поэтому мне нужно решение в реальном коде, который использует заголовочный файл.Есть идеи?

Ответы [ 2 ]

5 голосов
/ 17 января 2012

Согласно документации, вам нужно ws2_32.lib.

. Перейдите в Project-> Properties-> Linker-> Дополнительные зависимости и добавьте ws2_32.lib.

EDIT:

Это должно быть Project-> Properties-> Linker-> Input-> Additional Dependencies

0 голосов
/ 17 января 2012

Это ошибки компоновщика, а не ошибки компилятора. Вам нужно связать библиотеку WinSock. Для gcc это означает добавление библиотеки в командную строку ссылки:

gcc -Lpath/to/winsock/library -o myApplication myObject.o wsock32.lib

Боюсь, я ничего не знаю о Visual Studio, но эта ссылка может помочь.

...