Quel est le meilleur moyen d’AC_CHECK_LIB une bibliothèque qui comporte des dépendances externes supplémentaires?
-
20-08-2019 - |
Question
J'ai écrit une bibliothèque qui dépend de libxml ++ et de 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
du nouveau package indique qu'il existe des références non définies à curl_*
et à xmlpp::*
.
J'ai déjà PKG_CHECK_MODULES
la configuration de libxml ++ et curl dans mon dernier paquet, mais ceux-ci fonctionnent, mais ils ne sont apparemment pas disponibles pour l'appel <=> de ma propre bibliothèque. (J'ai les vérifications pour libxml ++ et curl avant la vérification pour ma propre bibliothèque)
La solution
Pourquoi ne fournissez-vous pas simplement un pkg-config
fichier de métadonnées (*.pc
) pour votre package. De cette façon, les clients pourraient utiliser PKG_CHECK_MODULES
et tout irait bien.
Mais le fait que vous rencontriez ce problème suggère que vous ne liez pas votre bibliothèque avec libxml ++ et libcurl - et vous devriez probablement le faire. Sur la plupart des systèmes modernes (y compris Linux), les bibliothèques partagées connaissent leurs dépendances.
Autres conseils
Je ne sais pas comment vous appelez AC_CHECK_LIB
, car ce n'est pas dans votre question, mais je suppose que vos dépendances ne sont pas spécifiées comme autres bibliothèques.
La syntaxe est la suivante:
AC_CHECK_LIB (library, function, [action-if-found], [action-if-not-found], [other-libraries])
alors mettez [-lcurl ...]
comme dernier argument.