Paket vs-Bibliothek
Ich habe gerade erst begonnen Arbeit mit CMake und ich bemerkte, dass Sie beide eine find_package
und ein find_library
. Und das verwirrt mich. Kann jemand erklären den Unterschied zwischen einem Paket und einer Bibliothek in die Welt der Programmierung? Oder, in der Welt der CMake?
Schätzen es, Jungs!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorstellen, die Sie verwenden möchten, zlib, die in Ihrem Projekt, müssen Sie die header-Datei
zlib.h
, und die Bibliotheklibz.so
(auf Linux). Sie können der Verwendung der low-level-cmake-Befehlefind_path
undfind_library
Sie zu finden, oder Sie könnenfind_package(ZLIB)
. Der später Befehl wird versuchen, herauszufinden, alles, was nötig ist, um die zlib. Es kann sein, extra-makro-Definitionen, oder Abhängigkeiten.Update, mehr Details über
find_package
: wenn der CMake-Befehlfind_package(SomeThing)
genannt wird, wie sagt die Dokumentation, gibt es zwei Möglichkeit: die Modul-Modus (sucht nach einer DateiFindSomeThing.cmake
), oder die config-Modus (sucht nach einer Datei namensSomeThingConfig.cmake
). Für ZLIB, es gibt ein Modul namensFindZLIB
, ausgeliefert mit CMake selbst (auf meinem Linux-Rechner, der die Datei/usr/share/cmake/Modules/FindZLIB.cmake
). Das Modul ist ein CMake-Skript, dass verwendet den CMake-API, um die Suche für die ZLIB-Dateien in Standard-Standorten, oder bitten Sie den Benutzer für den Standort, wenn er nicht automatisch gefunden werden.