add_library¶

Normal Libraries¶

add_library(<name> )

Dodaje docelow± bibliotekę o nazwie <name>, która ma być zbudowana z plików źródłowych wymienionych w wywołaniu polecenia. (Pliki źródłowe można tu pominąć, jeśli zostaną dodane później przy użyciu target_sources().) <name> odpowiada logicznej nazwie celu i musi być globalnie unikalne w danym projekcie. Rzeczywista nazwa pliku budowanej biblioteki jest konstruowana w oparciu o konwencje rodzimej platformy (takie jak lib<name>.a lub<name>.lib).

STATIC, SHARED lub MODULE może być podane w celu określenia typu biblioteki, która ma być utworzona. Biblioteki STATIC są archiwami plików obiektowych do użycia przy łączeniu innych celów. SHARED biblioteki są łączone dynamicznie i ładowane w czasie wykonywania. MODULE biblioteki są wtyczkami, które nie są łączone z innymi obiektami, ale mogą być ładowane dynamicznie w trybie runtime przy użyciu funkcji podobnych do dlopen. Jeśli typ nie jest podany jawnie, typem jest STATIC lub SHARED na podstawie tego, czy bieżąca wartość zmiennej BUILD_SHARED_LIBS jest ON. Dla bibliotek SHARED iMODULE właściwość POSITION_INDEPENDENT_CODE targetproperty jest ustawiana na ON automatycznie.Biblioteka SHARED lub STATIC może być oznaczona właściwością FRAMEWORKtarget, aby utworzyć macOS Framework.

Jeśli biblioteka nie eksportuje żadnych symboli, nie może być zadeklarowana jako bibliotekaSHARED. Na przykład, Windows resource DLL lub zarządzana biblioteka C++/CLIDLL, która nie eksportuje żadnych niezarządzanych symboli, musiałaby być biblioteką MODULE. Dzieje się tak, ponieważ CMake oczekuje, że biblioteka SHARED zawsze będzie miała przypisaną bibliotekę importu w Windows.

Domyślnie plik biblioteki zostanie utworzony w katalogu drzewa budowania odpowiadającym katalogowi drzewa źródłowego, w którym wywołano polecenie. Aby zmienić tę lokalizację, zobacz dokumentację właściwości ARCHIVE_OUTPUT_DIRECTORY,LIBRARY_OUTPUT_DIRECTORY, iRUNTIME_OUTPUT_DIRECTORY target. Zobacz dokumentację właściwości OUTPUT_NAME target, aby zmienić <name> część końcowej nazwy pliku.

Jeśli podano EXCLUDE_FROM_ALL, odpowiednia właściwość zostanie ustawiona na utworzonym celu. Zobacz dokumentację właściwości EXCLUDE_FROM_ALLtarget dla szczegółów.

Source arguments to add_library may use „generator expressions” withthe syntax $<...>. Zobacz podręcznik cmake-generator-expressions(7) w celu uzyskania informacji o dostępnych wyrażeniach. Zobacz podręcznik cmake-buildsystem(7), aby dowiedzieć się więcej o definiowaniu właściwości systemu budowania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.