C - 对WSAStartup @ 8'的未定义引用

Pau*_*ulo 8 c mingw winsock codeblocks wsastartup

我正在使用Code :: Blocks,MinGW和Windows.我试图初始化winsock,以便我可以在项目上工作.我一直在收到错误Undefined Reference to WSAStartup@8任何人都知道如何解决这个问题?

#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>

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

int main(int argc , char *argv[]){
    WSADATA wsa;
    int output;

    output=WSAStartup(MAKEWORD(2,2),&wsa);
    if(output != 0) {
        printf("Startup failed %d\n", output);
        return 1;
    } else {
        printf("Initialized");
        return 0;
    }

}
Run Code Online (Sandbox Code Playgroud)

4pi*_*ie0 20

链接器在加载代码后查找依赖项.如果库在构建过程中出现在需要符号之前,因为之后出现源文件,则不使用符号,稍后当它们出现在源文件中时,它们将无法解析.将-lws2_32您链接的winsock库放在源文件和目标文件之后.

gcc prog.c -o prog -lws2_32
Run Code Online (Sandbox Code Playgroud)