Pourquoi puis-je obtenir: symbole externe non résolu Erreur - C
J'essaie de compiler ce code:
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);
}
Et j'obtiens cette erreur liens:
La liaison...
mangouste.obj : error LNK2019: symbole externe non résolu _send@16 référencé dans la fonction _push
Ce qui me manque? Ça doit être une lib ou quelque chose. Je ne me souviens pas ce que je dois ajouter à mon reliant la.
Vous devez vous connecter pour publier un commentaire.
Le problème est que l'éditeur de liens ne pouvez pas trouver le
send()
fonction. Vous avez inclus le bon fichiers d'en-tête, de sorte que le compilateur est ok, mais vous n'êtes pas le lien avec le bon statiques des bibliothèques. Ouvrez les paramètres de votre projet, allez dans l'éditeur de liens de la section, et ajouter la bibliothèque digne de ce nom à la liste des bibliothèques qui sont liées à.[Modifier]
La bonne bibliothèque à ajouter, c'est
wsock32.lib
.Ce n'est pas tout à fait clair que la question que vous êtes en train de demander. Mais il semble que votre linker ne peut pas trouver le "envoyer" fonction partout où il est dit de regarder.
La différence de la normale erreurs, c'est que vous devez utiliser l'éditeur de liens, pas le compilateur et l'éditeur de code, de le résoudre.