referencia indefinida a `htole32 ‘

se produce un error al comstackr el siguiente código c en la versión 4.3 de CentOS.

#include  #include  #include  #include  int main(int argc, char *argv[]) { union { uint32_t u32; uint8_t arr[4]; } x; x.arr[0] = 0x11; x.arr[1] = 0x22; x.arr[2] = 0x33; x.arr[3] = 0x44; printf("x.u32 = 0x%x\n", x.u32); printf("htole32(x.u32) = 0x%x\n", htole32(x.u32)); printf("htobe32(x.u32) = 0x%x\n", htobe32(x.u32)); exit(EXIT_SUCCESS); } 

Detalles de los errores de comstackción:

$ gcc ac /tmp/ccki8bVg.o(.text+0x3a): En la función main': : undefined reference to htole32′ /tmp/ccki8bVg.o(.text+0x58): En la función main': : undefined reference to htobe32 ‘collect2: ld devolvió 1 estado de salida

Parece que no hay htole32 y htobe32 en mi servidor.

$ man htole32 No hay entrada manual para htole32

La página del manual en realidad tiene:

 #define _BSD_SOURCE 

antes del #include . Sin embargo, solo tiene eso en la sección superior, no en el progtwig de ejemplo a continuación. Por supuesto, como su sistema de destino ni siquiera tiene la página de manual, eso podría implicar que tiene un entorno de ejecución que no implementa esta parte (no estándar).