Varios desarrolladores desaconsejan el uso del PKG_CHECK_MODULES
(por ejemplo, en this answer), pero no hay una explicación clara y exhaustiva de sus motivos hasta donde he buscado. Entonces, pregunto:PKG_CHECK_MODULES considerados dañinos?
- ¿Por qué
PKG_CHECK_MODULES
sería perjudicial? - ¿Cuáles son las alternativas?
Yo, por ejemplo, lo usé por primera vez en la actualidad. Me pareció inestimable útil, especialmente para tratar con conjuntos de bibliotecas muy intrincados, como GTK +, donde tengo todas estas dependencias:
-I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0
-I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0
-I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0
-I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1
-I/usr/include/freetype2 -I/usr/include/libpng12
-lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0
-lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0
-lgthread-2.0 -lrt -lglib-2.0
Aunque las razones se basan en la alternativa a 'pkg-config' que William Pursell suele proponer, la realidad es que hay plataformas enteras como GTK que funcionan de forma 'incorrecta' y que requeriría todas esas bibliotecas para cambiar el directorio donde se instalan. Esto causaría una rotura masiva de los sistemas de compilación de las aplicaciones existentes. Como no creo que el camino "equivocado" en realidad cause ningún daño, no vale la pena cambiarlo. – ptomato
Además, 'pkg-config' le permite mantener versiones incompatibles de bibliotecas (como GTK 2 y GTK 3) instaladas en paralelo. Aunque estoy seguro de que William Pursell ha pensado en esto y con gusto le explicará cómo hacerlo a su manera ;-) – ptomato
@ptomato No, soy estrictamente una persona sin gui y nunca he tratado directamente con gtk. Pero creo que debería ser completamente posible hacer cosas como "LDFLAGS = -L $ (pkg-config --libs-only-L gtk + -2.0) CPPFLAGS = $ (pkg-config --cflags gtk + -2.0) LIBS = $ (pkg-config --libs-only-l gtk + -2.0) ", y esas opciones se pueden colocar en un config.site. Para que quede claro, no tengo objeciones a pkg-config, pero no me gusta PKG_CHECK_MODULES por las razones que se detallan en mi respuesta. –