C-未定义对WSAStartup@8&#39的引用; [英] C - Undefined Reference to WSAStartup@8'

查看:34
本文介绍了C-未定义对WSAStartup@8&#39的引用;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是Code::Block、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
", output);
        return 1;
    } else {
        printf("Initialized");
        return 0;
    }

}

推荐答案

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

gcc prog.c -o prog -lws2_32

这篇关于C-未定义对WSAStartup@8&#39的引用;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆