为什么我得到:未解析的外部符号错误 - C.

T.T*_*.T. 0 symbols external

我尝试编译这段代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

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

我错过了什么?它必须是一些lib或者什么.我只是不记得我需要添加到我的链接.

Ada*_*eld 6

问题是链接器无法找到该send()功能.您已经包含了正确的头文件,因此编译器没问题,但是您没有使用正确的静态库进行链接.打开项目设置,转到链接器部分,并将正确的库添加到链接的库列表中.

[编辑]

要添加的库是正确的wsock32.lib.