Cambiar ruta pkg-config

2 envíos / 0 nuevos
Último envío
#1 Dom, 02/04/2017 - 15:42
laremi400
Imagen de laremi400
Desconectado/a
se unió: 02/04/17

Cambiar ruta pkg-config

Hola!!

No sé si esto será OFF TOPIC, pero como lo hago sobre debian jessie y creo que puede ser util pues lo pongo.

Estoy intentado migrar un programa (en realidad muchos) de debian a windows. En debian uso el complilador de gcc con un makefile. Hasta ahí funciona todo correcto.

Pero ahora intento compilar (crosscompling) para windows y para ello he instalado el mingw32 que trae el i586-mingw32msvc-gcc para compliar en debian un .exe que luego funciona en windows. Hasta ahora he conseguido compliar un rograma de demo de GTK+ 3.0.

Para hacer esto hay que instalar en debian los fuentes de GTK+ para windows. Esto se hace en una carpeta aparte. Y aqui viene mi duda: pkg-config devuelve la info de un paquete instalado. Pero claro, yo no quiero la info de GTK+ 3.0 instalado para debian, quiero la info de la carpeta en donde tengo el GTK+ de windows. Asi que ¿hay alguna manera de redireccionar puntualmente el pkg-config?.

Naturalmente sigo haciendo programas sobre debian y no quiero que se mezclen cosas.

Además tengo un lío mediano con mysql por las mismas razones. ¿alguien ha compliado el conector mysql en debian?.

Gracias!!!!

Vie, 16/06/2017 - 15:46
shicefgo
Imagen de shicefgo
Desconectado/a
se unió: 28/03/16

Hola.

Te puedes construir tu propio archivo para ser utilizado por pkg-config, de esa forma podrías llamarlo sólo desde donde te interese, dejando el original sin modificar.

En este enlace hay una guía sobre pkg-config.

En la salida de la orden

pkg-config --debug dbus-1

debería figurar la ruta, o path donde pkg-config busca los archivos con la información para compilar. En mi Debian testing es: /usr/lib/x86_64-linux-gnu/pkgconfig/ , es decir, que si yo quisiera crear un nuevo archivo para pkg-config tendría que copiarlo ahí para poder utilizarlo como cualquier otro.

Como dice la guía del enlace, la estructura de uno de esos archivos no es demasiado complicada:

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: foo
Description: The foo library
Version: 1.0.0
Cflags: -I${includedir}/foo
Libs: -L${libdir} -lfoo

Es suficiente con indicar las rutas donde están los archivos de cabeceras (includedir) y las bibliotecas (libdir) de nuestro programa. El nombe del archivo debe acabar en .pc. Las variables están a la izquierda del signo = y son las que debes "rellenar" de la manera adecuada para que te funcione. Fíjate que al final hay un resumen, con el nombre del paquete, descripción, versión e información sobre el uso de cflags y libs.

Una idea para tu caso podría ser copiar el archivo en cuestión con un nombre nuevo, modificar en él lo que haga falta, copiarlo a su sitio y a probar si cuela wink.

Hace bastantes años estuve trasteando con esto además de con las autotools, pero me he pasado a cmake y ahí las cosas funcionan de otra manera, aunque sigue habiendo sitio para pkg-config, este paquete parece de los que no se puede dejar a un lado así como así.

Un saludo.