El entorno de compilación MSYS y MinGW en Windows informa un error al usar la API de red: referencia indefinida a la solución `inet_pton'

El entorno de compilación MSYS y MinGW en Windows informa un error al usar la API de red: referencia indefinida a la solución `inet_pton'


El entorno mingw-gcc necesita agregar la biblioteca -lws2_32 para usar la red.

Si está utilizando Qt Creator, debe agregar una línea al archivo .pro: win32:LIBS += -lws2_32.

Al utilizar la función de conversión de IP en el proyecto, inet_pton、inet_pton、inet_ntop、inet_ntopse informará un error indefinido. Esto se debe a que la definición de estas funciones está en el archivo de encabezado winsock2.hy en el sistema Windows ws2tcpip.h. ¡La compilación de estas funciones depende de _WIN32_WINNTesta definición de macro!

El archivo de encabezado en mingw-gcc _mingw.hdefine _WIN32_WINNTel valor de la macro como 0x0502. Este valor representa que el sistema actual es Windows Server 2003. Como resultado, estas funciones de conversión de direcciones IP no se compilarán durante la compilación, por lo que debe agregar El valor de esta macro se cambia a 0x0600, lo que indica que se utiliza Windows Vista.

Para conocer la definición de este valor, puede consultar la explicación oficial de Microsoft: https://learn.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt?view=msvc-170

! ! ¡Aviso! !

Para estar seguro, ¡no cambie _WIN32_WINNT en _mingw.h!

En su lugar, cuando lo use en su propio proyecto, agregue los archivos de encabezado ws2tcpip.h y winsock2.h para cancelar la definición y redefinir. Como se muestra abajo:


termina…

Supongo que te gusta

Origin blog.csdn.net/qq153471503/article/details/132508310
Recomendado
Clasificación