PKG_CHECK_MODULES considéré comme dangereux?

Différents développeurs de décourager l'utilisation de la PKG_CHECK_MODULES (par exemple, dans cette réponse), mais il n'est pas clair, explication complète des raisons que j'ai cherché. Donc, je demande:

  • Pourquoi PKG_CHECK_MODULES être dangereux?
  • Quelles sont les alternatives?

Qui me concerne, je l'utilise pour la première fois aujourd'hui. Je l'ai trouvé de façon inestimable utile, spécialement pour traiter avec assez complexe de la bibliothèque de jeux, tels que GTK+, où j'ai toutes ces dépendances:

-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 
  • Bien que les raisons sont solides derrière l'alternative à pkg-config que William Pursell propose habituellement, la réalité est qu'il existe un ensemble de plates-formes telles que GTK que les travaux de la "mauvaise" façon de fixation et elle aurait besoin de toutes ces bibliothèques à changer le répertoire dans lequel ils s'installent à l'. Ce serait provoquer une rupture massive de la construction de systèmes d'applications existantes. Depuis, je ne pense pas que la "mauvaise" façon de cause aucun tort, c'est pas la peine de changer.
  • Aussi, pkg-config vous permet de garder des versions incompatibles de bibliothèques (comme GTK 2 et GTK 3) montés en parallèle. Même si je suis sûr que William Pursell a pensé à cela et se fera un plaisir de vous expliquer comment le faire à sa manière 😉
  • Non, je suis strictement non-gui personne et n'ont jamais traité directement avec gtk. Mais je crois qu'il devrait être possible de faire des choses comme "LDFLAGS=-L$( pkg-config --libs-seulement-L gtk+-2.0 ) CPPFLAGS=$( pkg-config --cflags gtk+-2.0 ) LIBS=$( pkg-config --libs-seulement-l gtk+-2.0 )", et ces options peuvent être placés dans une config.site. Pour être clair, je n'ai pas d'objections à pkg-config, mais je n'aime pas PKG_CHECK_MODULES pour les raisons exposées dans ma réponse.
  • pour l'installation de versions incompatibles de bibliothèques...c'est ce que pkgsrc est pour!
  • pkgsrc comme dans NetBSD?
  • pkgsrc originaire de NetBSD, mais fonctionne sur de nombreuses plates-formes.

InformationsquelleAutor brandizzi | 2012-04-19