Pregunta

Intento compilar este código:

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);
}

Y recibo este error de enlazador: vinculación ...
Mongoose.obj: Error LNK2019: símbolo externo no resuelto _send@16 referenciado en la función _push

¿Qué me estoy perdiendo? Debe ser un poco de lib o algo así. Simplemente no recuerdo lo que necesito agregar a mi enlace.

¿Fue útil?

Solución

El problema es que el enlazador no puede encontrar el send() función. Ha incluido los archivos de encabezado adecuados, por lo que el compilador está bien, pero no está vinculando con las bibliotecas estáticas adecuadas. Abra la configuración de su proyecto, vaya a la sección de enlaces y agregue la biblioteca adecuada a la lista de bibliotecas que están vinculadas.

Editar

La biblioteca correcta para agregar es wsock32.lib.

Otros consejos

No está del todo claro qué pregunta está haciendo. Pero parece que su enlazador no puede encontrar la función "Enviar" en cualquier lugar donde se le haya dicho que busque.

La diferencia de los errores normales es que necesita usar el enlazador, no el compilador y el editor de código, para resolverlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top