CMake statische und dynamische Bibliotheken erstellen?

Antwort

Um sowohl eine statische als auch eine dynamische (shared) Bibliothek mit CMake zu erstellen, kannst du die folgenden Schritte befolgen: 1. **CMakeLists.txt erstellen**: Erstelle eine Datei namens `CMakeLists.txt` in deinem Projektverzeichnis. 2. **CMake-Konfiguration**: Füge den folgenden Code in die `CMakeLists.txt` ein: ```cmake cmake_minimum_required(VERSION 3.10) project(MyLibrary) # Quellcode-Dateien set(SOURCES src/my_library.cpp # Füge hier weitere Quellcode-Dateien hinzu ) # Statische Bibliothek erstellen add_library(my_library_static STATIC ${SOURCES}) # Shared Bibliothek erstellen add_library(my_library_shared SHARED ${SOURCES}) # Optional: Installationsregeln install(TARGETS my_library_static my_library_shared DESTINATION lib) ``` 3. **Verzeichnisstruktur**: Stelle sicher, dass deine Verzeichnisstruktur wie folgt aussieht: ``` /dein_projekt ├── CMakeLists.txt └── src └── my_library.cpp ``` 4. **CMake ausführen**: Öffne ein Terminal und navigiere zu deinem Projektverzeichnis. Führe die folgenden Befehle aus: ```bash mkdir build cd build cmake .. make ``` 5. **Bibliotheken verwenden**: Nach dem Kompilieren findest du die statische Bibliothek `libmy_library_static.a` und die dynamische Bibliothek `libmy_library_shared.so` (oder `.dll` auf Windows) im `build`-Verzeichnis. Mit diesen Schritten kannst du sowohl statische als auch dynamische Bibliotheken in CMake erstellen.

KI fragen

Verwandte Fragen

Wie entsteht ein "undefined reference"-Fehler in CMake?

Ein "undefined reference"-Fehler in CMake-Projekten tritt auf, wenn beim Linken des Programms eine Funktion oder Variable verwendet wird, für die der Linker keine Definition findet. Das... [mehr]