Warum bekomme ich: nicht aufgelöstes externes symbol Fehler - C
Ich versuche, um diesen code zu kompilieren:
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);
}
Und ich bekomme linker-Fehler:
- Verknüpfung...
mongoose.obj : error LNK2019: nicht aufgelöstes externes symbol _send@16 verwiesen in Funktion _push
Was bin ich? Es muss irgendeine lib oder so etwas. Ich weiß einfach nicht mehr was ich hinzufügen müssen meiner Verlinkung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass der linker nicht finden können, die
send()
Funktion. Sie haben die richtigen header-Dateien, damit der compiler ist ok, aber du bist nicht die Verknüpfung mit den richtigen statischen Bibliotheken. Öffnen Sie Ihr Projekt-Einstellungen finden Sie auf der Linker Abschnitt, und fügen die korrekte Bibliothek auf die Liste der Bibliotheken, die miteinander verbunden sind.[Bearbeiten]
Die richtige Bibliothek hinzufügen, wird
wsock32.lib
.Es ist nicht ganz klar, welche Frage Sie eigentlich Fragen. Aber es sieht aus wie Sie in der linker nicht finden können, die "senden" - Funktion überall, es ist gesagt worden, um zu schauen.
Den Unterschied von normalen Fehlern ist, dass Sie brauchen, um zu verwenden, wird der linker, nicht der compiler und code-editor, um es zu lösen.