Paket gegen Bibliothek

9

Ich habe gerade angefangen, mit CMake zu arbeiten, und mir ist aufgefallen, dass sie sowohl eine find_package als auch eine find_library haben. Und das verwirrt mich. Kann jemand den Unterschied zwischen einem Paket und einer Bibliothek in der Programmierwelt erklären? Oder in der Welt von CMake?

Schätze es, Leute!

    
assignment_operator 23.05.2014, 14:51
quelle

2 Antworten

7

Stellen Sie sich vor, Sie möchten zlib in Ihrem Projekt verwenden. Sie müssen die Header-Datei zlib.h und die Bibliothek libz.so (unter Linux) finden. Sie können die Low-Level-cmake-Befehle find_path und find_library verwenden, um sie zu finden, oder Sie können find_package(ZLIB) verwenden. Der spätere Befehl wird versuchen, alles herauszufinden, was notwendig ist, um zlib zu verwenden. Es können zusätzliche Makrodefinitionen oder Abhängigkeiten sein.

Update, weitere Details zu find_package : Wenn der CMake-Befehl find_package(SomeThing) aufgerufen wird, Wie es in der Dokumentation heißt gibt es zwei Möglichkeiten: den Modulmodus (der nach einer Datei FindSomeThing.cmake sucht) oder den Konfigurationsmodus (der nach einer Datei namens SomeThingConfig.cmake sucht) . Für ZLIB gibt es ein Modul namens FindZLIB , das mit CMake selbst ausgeliefert wird (auf meinem Linux-Rechner ist das die Datei /usr/share/cmake/Modules/FindZLIB.cmake ). Dieses Modul ist ein CMake-Skript, das die CMake-API verwendet, um nach ZLIB-Dateien an Standardspeicherorten zu suchen, oder den Benutzer nach dem Speicherort fragt, wenn dieser nicht automatisch gefunden werden kann.

    
lrineau 23.05.2014, 20:45
quelle
-1

find_package: Einstellungen für ein externes Projekt laden.

find_library: Suchen Sie eine Bibliothek.

Quelle: Ссылка

Und die Definition von Paket und Bibliothek ist hier:

Was ist der Unterschied zwischen Modul, Paket und Bibliothek? in Haskell?

    
Voulzy 23.05.2014 15:02
quelle