【问题标题】:Why do I get: unresolved external symbol Error - C [closed]为什么我会得到:无法解析的外部符号错误 - C [关闭]
【发布时间】:2009-04-27 21:27:54
【问题描述】:

我尝试编译这段代码:

static uint64_t
push(int fd, SOCKET sock, SSL *ssl, const char *buf, uint64_t len)
{
    uint64_t    sent;
    int     n, k;

    sent = 0;
    while (sent < len) {

        /* How many bytes we send in this iteration */
        k = len - sent > INT_MAX ? INT_MAX : (int) (len - sent);

        if (ssl != NULL) {
            n = SSL_write(ssl, buf + sent, k);
        } else if (fd != -1) {
            n = write(fd, buf + sent, k);
        } else {
            n = send(sock, buf + sent, k, 0);
        }

        if (n < 0)
            break;

        sent += n;
    }

    return (sent);
}

我得到这个链接器错误: 正在链接...
mongoose.obj:错误 LNK2019:函数 _push 中引用的未解析的外部符号 _send@16

我错过了什么?它必须是一些库或其他东西。我只是不记得我需要在链接中添加什么。

【问题讨论】:

    标签: external symbols


    【解决方案1】:

    问题是链接器找不到send() 函数。您已经包含了正确的头文件,所以编译器没问题,但是您没有链接到正确的静态库。打开您的项目设置,转到链接器部分,然后将适当的库添加到链接的库列表中。

    [编辑]

    要添加的正确库是wsock32.lib

    【讨论】:

    【解决方案2】:

    目前尚不完全清楚您实际问的是什么问题。但看起来您的链接器在被告知要查找的任何地方都找不到“发送”功能。

    【讨论】:

      【解决方案3】:

      与正常错误的区别在于需要使用链接器,而不是编译器和代码编辑器来解决。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 1970-01-01
        • 2015-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多