2009-06-26 4 views
0

Ich habe eine Bibliothek geschrieben, die eine Abhängigkeit von libxml ++ und curl hat und es fällt mir schwer herauszufinden, wie man AC_CHECK_LIB in meiner Bibliothek in einem anderen Paket, das ich geschrieben habe, verwendet. Die config.log-Datei für das neue Paket gibt an, dass es undefinierte Verweise auf curl_* und xmlpp::* gibt.Was ist der beste Weg zu AC_CHECK_LIB eine Bibliothek, die zusätzliche externe Abhängigkeiten hat?

Ich habe PKG_CHECK_MODULES Setup für libxml ++ und Curl in meinem neuesten Paket bereits, und diese Arbeit, aber sie sind offenbar nicht verfügbar für die AC_CHECK_LIB Aufruf für meine eigene Bibliothek. (Ich habe die Prüfungen für libxml ++ und Curl vor der Überprüfung für meine eigene Bibliothek)

Antwort

4

Warum liefern Sie nicht einfach eine pkg-config Metadatendatei (*.pc) für Ihr Paket. So könnten Kunden PKG_CHECK_MODULES verwenden und die Dinge würden einfach funktionieren.

Aber die Tatsache, dass Sie dieses Problem haben, schlägt vor, dass Sie Ihre Bibliothek nicht mit libxml ++ und libcurl verknüpfen - und Sie sollten wahrscheinlich sein. Auf den meisten modernen Systemen (einschließlich Linux) kennen gemeinsam genutzte Bibliotheken ihre Abhängigkeiten.

+1

Ich finde das GNU-Autotoolset extrem schwer zu finden * gute * Dokumentation auf. Ich benutzte pkg-config in meiner ersten Bibliothek direkt, um Daten für curl und libxml ++ zu erhalten, und ich benutzte AC_CHECK_LIB oder PKG_CHECK_MODULES nicht. Also habe ich gegen sie verlinkt und pkg-config benutzt ... einfach nicht auf diese Weise. Ich habe bereits den Prozess des Hinzufügens einer * .pc-Datei für meine erste Bibliothek gestartet und die Dinge scheinen jetzt reibungsloser zu laufen. –

7

Ich weiß nicht, wie Sie AC_CHECK_LIB anrufen, weil es nicht in Ihrer Frage ist, aber meine Vermutung ist, dass Sie nicht haben Abhängigkeiten, die als andere Bibliotheken angegeben sind.

Die Syntax ist:

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

so [-lcurl ...] als letztes Argument setzen.

+0

Dies beantwortete meine Frage nicht direkt, aber es zeigte mir in die richtige Richtung. Vielen Dank! –

Verwandte Themen