2009-06-26 12 views
0

J'ai écrit une bibliothèque qui dépend de libxml ++ et curl et j'ai du mal à comprendre comment utiliser AC_CHECK_LIB sur ma bibliothèque dans un autre paquet que j'ai écrit. Le fichier config.log pour le nouveau package indique qu'il existe des références non définies à curl_* et xmlpp::*.Quel est le meilleur moyen d'AC_CHECK_LIB une bibliothèque qui a des dépendances externes supplémentaires?

J'ai PKG_CHECK_MODULES configuration pour libxml ++ et curl dans mon plus récent paquet déjà, et ceux-ci fonctionnent, mais ils ne sont apparemment pas disponibles pour l'appel AC_CHECK_LIB pour ma propre bibliothèque. (J'ai les contrôles pour libxml ++ et curl avant le contrôle de ma propre bibliothèque)

Répondre

4

Pourquoi ne fournissez-vous pas simplement un fichier de métadonnées pkg-config (*.pc) pour votre package. De cette façon, les clients pourraient utiliser PKG_CHECK_MODULES et les choses fonctionneraient simplement.

Mais le fait que vous ayez ce problème suggère que vous ne liez pas votre bibliothèque avec libxml ++ et libcurl - et vous devriez probablement l'être. Sur la plupart des systèmes modernes (y compris Linux), les bibliothèques partagées connaissent leurs dépendances.

+1

Je trouve que l'autotoolset de GNU est extrêmement difficile à trouver. J'utilisais pkg-config dans ma première bibliothèque directement pour obtenir des données pour curl et libxml ++ et je n'utilisais pas AC_CHECK_LIB ou PKG_CHECK_MODULES. Donc, je faisais des liens avec eux et j'utilisais pkg-config ... mais pas de cette façon. J'ai déjà commencé le processus d'ajout d'un fichier * .pc pour ma première bibliothèque et les choses semblent se passer plus facilement maintenant. –

7

Je ne sais pas comment appelez-vous AC_CHECK_LIB, parce que ce n'est pas dans votre question, mais je suppose que vous n'avez pas votre dépendances spécifiées en tant qu'autres bibliothèques.

La syntaxe est:

AC_CHECK_LIB (library, function, [action-if-found], [action-if-not-found], [other-libraries])

donc mis [-lcurl ...] comme dernier argument.

+0

Cela n'a pas répondu directement à ma question, mais cela m'a indiqué la bonne direction. Merci! –

Questions connexes