C++ | CMake findet library nicht?
Die Library von Github habe ich mit CMake über "cmake --build . --config Debug" erstellt. Das hat auch soweit funktioniert.
Die Library befindet sich nicht im Projektordner. Nun will ich diese Library mittels find_package(...) und target_link_libraries(...) im Projekt aufrufen.
Allerdings findet CMake das Config file nicht, was sich aber mit dem gesuchten Namen in der compilten Library befindet. Der Command (cmake -D CMAKE_PREFIX_PATH= meinPfad), um CMake den Pfad wissen zu lassen, gibt mir nur den Error code:"Selecting Windows SFK version [...] CMake Error at CMakeLists.txt:12 (target_link_libraries): Cannot specify link libraries for target "Projekt" which is not built by this project."
Was kann ich tun? Ich habe schon so viel probiert, aber nichts funktioniert.
Dein Profilbild hat glaube ich einen bug
Wilhelm, das bringt mir jetzt auch nichts :/ CMake ist ein stück Software von der.. naja speziellen Sorte
1 Antwort
Es klingt, als ob es mehrere mögliche Ursachen für dein Problem gibt. Hier sind einige Schritte, die du ausprobieren kannst:
Überprüfe den Pfad: Stelle sicher, dass der Pfad, den du mit CMAKE_PREFIX_PATH angibst, korrekt ist und auf das Verzeichnis zeigt, in dem sich die Config-Datei der Library befindet.
Verwende find_library: Anstatt find_package, könntest du find_library verwenden, um die Library zu finden. Zum Beispiel:
find_library(MY_LIBRARY NAMES libname PATHS /path/to/library)
target_link_libraries(Projekt ${MY_LIBRARY})
Überprüfe die Zieldefinition: Der Fehler “Cannot specify link libraries for target ‘Projekt’ which is not built by this project” deutet darauf hin, dass das Ziel Projekt nicht korrekt definiert ist. Stelle sicher, dass du das Ziel vor dem Aufruf von target_link_libraries erstellst:
add_executable(Projekt main.cpp)
target_link_libraries(Projekt ${MY_LIBRARY})
Debugging-Optionen verwenden: Du kannst CMake mit der Option --debug-find ausführen, um detaillierte Informationen darüber zu erhalten, welche Pfade durchsucht werden und warum die Library nicht gefunden wird1.
Config-Datei überprüfen: Stelle sicher, dass die Config-Datei der Library korrekt ist und alle notwendigen Informationen enthält. Manchmal kann es hilfreich sein, die Datei manuell zu überprüfen und sicherzustellen, dass alle Pfade und Namen korrekt sind.
Falls diese Schritte nicht helfen, könntest du auch versuchen, die Library in einem Standardverzeichnis zu installieren, das CMake automatisch durchsucht, oder die Umgebungsvariable CMAKE_PREFIX_PATH global zu setzen.
Viel Erfolg! Wenn du weitere Fragen hast, stehe ich gerne zur Verfügung. 😊
Schade - Trotzdem viel Erfolg mit deinem Roboter Projekt, deinem guten Verhalten nach zu urteilen scheinst du eine Lösung verdient zu haben.
Gruß
Die ChatGPT Antwort bringt leider nichts - das habe ich schon versucht. Trotzdem danke