2010-07-29 7 views
2

EVC++를 사용하고 있는데 소켓을 사용하는 프로그램을 컴파일하고 싶습니다. 나는WSAStartup 링크 오류

#include <winsock2.h>

을 포함 시켰습니다 그리고 나는 Ws2.lib 에 프로젝트 속성에서 경로를 포함하지만 여전히 링크 단계에서 오류가 발생했습니다 :

오류 LNK2019 : 확인되지 않은 외부 기호를 WSAStartup에 함수에서 참조하는 ...

이 문제를 해결하는 방법?

답변

5

프로그램을 winsock 라이브러리에 연결하지 않았습니다. Winsock 2 라이브러리는 ws2_32.lib (정적) 또는 ws2_32.dll (동적)이라고합니다. 이미 시스템에 있어야합니다. 당신은 컴파일러/링커에게 당신의 프로그램을 그것과 링크 시키라고 말할 필요가있다. 이렇게하는 방법은 컴파일러에 따라 다르며 불행히도 EVC++에 익숙하지 않습니다.

+0

http://msdn.microsoft.com/en-us/library/ms911778.aspx 그것은이 WSAStartup에 작동하는 방법에 대한이 기록됩니다. ws2.dll을 사용합니다. 그러나 ws2_32.dll에 대해 작성된 것이 없습니다 – erjik

7

#pragma comment(lib,"WS2_32") 결국 #include

+0

이것은 Visual Studio에서 저에게 효과적이었습니다. 기본적으로 우리는 링크하는 동안 함수에 대한 심볼을 링커에 제공해야합니다. – prashanthns