[C][LINUX][GCC][SHELL] Error de compilacion LIBXML2

Tratando de parsear el XML con la librería existente en la maquina Redhat. Pero al momento de compilar me arroja los siguientes errores, los cuales no he podido resolver durante la mañana:

SDP.c:(.text+0x13d5): undefined reference to `xmlParseMemory'
SDP.c:(.text+0x13ec): undefined reference to `xmlDocGetRootElement'
SDP.c:(.text+0x1403): undefined reference to `xmlFreeDoc'
SDP.c:(.text+0x141b): undefined reference to `xmlStrcmp'
SDP.c:(.text+0x142b): undefined reference to `xmlFreeDoc'

En el archivo SDP.c hago la referencia a la libreria:
#include 
#include 
#include 
Y en el Makefile esta incluida igual:


LIBXML      = -I/cons/cons

cons: $(IF_UPDATE) 
 $(CC)  $(INC_KRONOS)  -g $(CFLAGS) -DIPC $(ARCHIVO_CONF_PROD) SDP.c $(MSGs_ALARMA) $(LIBXML) ${LIBRPC} $(SDPINC) $(FILES_COMPILAR) $(I
NC_CONF) $(LIB_CONF) $(INC_ALARMA) $(LIB_ALARMA) $(LIB_OUM) -o $@ $(LIBADICIONAL)



Red Hat Enterprise Linux 5:-

1
2
3
4
checking for libxml2 config script... /usr/bin/xml2-config
checking if libxml2 is at least v2.6.29... no, 2.6.26
configure: error: NOTE: libxml2 library must be at least 2.6.29
 Actualizar la librería:

libxml2-2.9.1.tar.gz
$ wget -i ftp://xmlsoft.org/libxml2/libxml2-2.9.4.tar.gz

$ tar -xvf libxml2-2.9.4.tar.gz


Esta linea al entrar al directorio descomprimido le damos una ruta alternativa donde configurar los fuentes resultantes, ya que generalmente en una maquina de desarrollo no tenemos permisos de ROOT para instalar el paquete completo en la maquina, por lo que opte por descomprimir en un directorio distinto al tipo /opt o el /usr
$./configure --prefix=/cons/cons/libxml2/libxml --with-python=no


Se agrego la opción --with-python=no ya que no es necesario en este caso utilizar python para compilar la libreria en este caso.

$make clean
$ make && make install



Luego de compilar se debe cambiar la referencia estática a la librería en el MAKEFILE:
$ diff Makefile Makefile.20160922
26,27c26
< #Eliminar path en produccion $(shell xml2-config --cflags)
< LIBXML      = $(shell /cons/cons/cons/libxml2/libxml/bin/xml2-config --cflags --libs)
---
> LIBXML      = -I/cons/cons






Con este cambio se dejara a la librería obtener la ruta de las cabeceras xml2-config --cflags --libs
$ diff SDP.c SDP.c.20160922
23,25c23,24
< #include 
< #include 
< #include 
---
> #include 
> #include 
36,37d34
En el codigo editar las referencias a las cabeceras de las librerias de la LIBXML2:
Compilar y al pasar a produccion tener el cuidado de sacar la ruta de desarrollo en donde quedo la libreria compilada :
/cons/cons/libxml2/libxml/bin/

No hay comentarios.:

Problemas de activación WIFI6 en LG_OLED55CXPSA

  Mi experiencia con este TV  ah sido impecable hasta ahora, llevaba un uso normal y no tenia que usar la conexión por wifi ya que tengo una...