'inet_pton': identificateur introuvable
Je vais essayer d'inclure le code suivant dans mon programme, mais l'erreur ('inet_pton': identificateur introuvable) sera apparu.
//IPv4:
struct sockaddr_in ip4addr;
int s;
ip4addr.sin_family = AF_INET;
ip4addr.sin_port = htons(3490);
inet_pton(AF_INET, "10.0.0.1", &ip4addr.sin_addr);
s = socket(PF_INET, SOCK_STREAM, 0);
bind(s, (struct sockaddr*)&ip4addr, sizeof ip4addr);
Sortie
error C3861: 'inet_pton': identifier not found
l', y compris l'en-tête
#include <stdio.h>
#include <stdlib.h>
#include "udpDefine.h"
#include <windows.h>
tout en aidant peut-être passé à côté de certains en-têtes ou lib.
Recherche rapide sur google tourne #include <arpa/inet.h>
fatal error C1083: Impossible d'ouvrir le fichier include: 'arpa/inet.h': Aucun fichier ou répertoire. j'ai besoin d'installer d'autres en-têtes ou quoi?
Que fichier d'en-tête est la partie de la bibliothèque standard (au moins selon POSIX). Si vous ne l'avez pas, puis Windows simplement ne fournit pas cette fonction, qui n'est pas une surprise - Windows n'est pas conforme à POSIX.
mon système d'exploitation est windows 7. est le <arpa/inet.h> non fourni sous windows ou c'est raté de mon système.
#include <arpa/inet.h>
fatal error C1083: Impossible d'ouvrir le fichier include: 'arpa/inet.h': Aucun fichier ou répertoire. j'ai besoin d'installer d'autres en-têtes ou quoi?
Que fichier d'en-tête est la partie de la bibliothèque standard (au moins selon POSIX). Si vous ne l'avez pas, puis Windows simplement ne fournit pas cette fonction, qui n'est pas une surprise - Windows n'est pas conforme à POSIX.
mon système d'exploitation est windows 7. est le <arpa/inet.h> non fourni sous windows ou c'est raté de mon système.
OriginalL'auteur abdo.eng 2006210 | 2013-03-27
Vous devez vous connecter pour publier un commentaire.
la fonction
est déclarée dans le fichier d'en-tête:
si c'est Windows (Vista ou version ultérieure) Winsock est analogique à cette version ANSI:
essayer
#include <Ws2tcpip.h>
ajouter Ws2_32.lib
ajouter lib Ws2_32.lib
ok, mais également error C3861: 'InetPton': identificateur introuvable.
inclure Ws2tcpip.h au lieu de winsock
merci beaucoup cf16.
OriginalL'auteur
Dans windows XP (et plus tard), vous pouvez utiliser ces fonctions:
Lien avec ws2_32 bibliothèque.
+1
dansINET6_ADDRSTRLEN+1
(ouINET_ADDRSTRLEN+1
) n'est pas nécessaire. Les commentaires dans le Microsoft les en-têtes indiquent le définir comprend la valeur NULL.OriginalL'auteur
Dans mon cas, la fonction ne pouvait pas être trouvé, car il y avait un "#define WINVER 0x0502" quelque part dans un fichier d'en-tête.
Sur les systèmes Windows, la version 0x600 (= Vista) est au moins nécessaire pour cette fonction.
OriginalL'auteur
Les utilisateurs de Windows peuvent également trouver la réponse ici:
https://docs.microsoft.com/en-us/windows/desktop/api/ws2tcpip/nf-ws2tcpip-inetptonw
Vous devez utiliser le
ws2tcpip.h
en-tête et ajouterWs2_32.lib
de votre linker.Édité.
OriginalL'auteur
Pour résoudre ce problème, il suffit d'ajouter les lignes suivantes à votre code après tous les #includes
OriginalL'auteur