Unter GNU/Linux besteht die Konvention darin, den Namen der Bibliothek (nennen wir es foo) an target_link_libraries ohne das lib-Präfix zu übergeben (andernfalls versucht es liblibfoo zu verlinken) .damit). Unter Windows jedoch, wenn ich mit "foo" verlinke, versuche ich "foo.lib" zu finden, das nicht existiert, da die Bibliothek libfoo.lib heißt. Gibt es eine Möglichkeit, cmake anzuweisen, das lib-Präfix hinzuzufügen, ohne auf einen weiteren if (WIN32) -Block zurückzugreifen?cmake: wie man eine Bibliothek mit einem lib-Präfix verbindet unter Windows
0
A
Antwort
1
Verwenden Sie den Befehl find_library für den absoluten Suchpfad zur Bibliothek. Sie können alle möglichen Namen der gesuchten Bibliothek NAMES
Option angeben:
find_library(FOO_LIBRARY NAMES foo libfoo)
Dann Ergebnis dieses Befehls für Link verwenden, um mit der Bibliothek:
target_link_libraries(my_exec ${FOO_LIBRARY})
Verwandte Themen
- 1. cmake und tesseract, wie man mit cmake verbindet
- 2. Wie verbindet man C++ - Programm mit Boost mit CMake
- 3. Wie finde ich eine Bibliothek mit cmake?
- 4. CMake verbindet nicht glfw unter osx
- 5. cmake RUNTIME_OUTPUT_DIRECTORY unter Windows
- 6. Running CMake unter Windows
- 7. Wie man Winsock in cmake verbindet?
- 8. CMake unter Windows
- 9. Wie man statische Bibliothek in dynamische Bibliothek in GCC verbindet
- 10. Wie erstellt man eine gemeinsame Bibliothek mit cmake?
- 11. (Wie) Kann ich eine einzelne .cmake-Datei unter Windows ausführen?
- 12. MacOS - wie man eine dynamische Bibliothek mit einem relativen Pfad verbindet mit gcc/ld
- 13. Get CMake, Flex unter Windows zu finden
- 14. wie man Schwingung mit einem Knopfklick verbindet
- 15. Wie man mit dynamischer Bibliothek (.so) und statischer libc.a verbindet
- 16. eine gemeinsame Bibliothek mit Statik Verknüpfung CMake mit
- 17. Wie verbindet man Postgresql-Datenbank mit einem Maven-Projekt?
- 18. Gebäude und verbindet eine gemeinsame Bibliothek
- 19. Wie installiere ich cmake unter Windows 64 bit
- 20. wie man Datenbank mit codeigniter unter Verwendung mamp verbindet
- 21. SDL-Bibliothek in CLion unter Windows 10 verbinden
- 22. Wie man unity3D mit mongoDB verbindet
- 23. CMake "make install" oder einschließlich einer Bibliothek in Windows
- 24. Wie initialisiert man eine gemeinsame Bibliothek unter Linux
- 25. Wie man ein Visual Studio Projekt erzeugt, das den Intel Compiler mit cmake unter Windows verwendet
- 26. GCC verbindet Bibliothek nicht mit einem nicht standardmäßigen Pfad
- 27. Golang, wie man Bilder miteinander verbindet/verbindet
- 28. Wie testen, ob CMake eine Bibliothek mit find_library
- 29. Wie Debuggen einer freigegebenen Bibliothek mit Eclipse/Gdb unter Windows?
- 30. CMake Stripping statische Bibliothek
Nein, ich spreche von Bibliotheken ohne Cmake Module. –
Es sind keine CMake-Module beteiligt. Der Befehl 'find_library' ist intern für CMake, wie' target_link_libraries' selbst. – Tsyvarev
Danke, ich missverstanden. Ich dachte, du hättest aus irgendeinem Grund find_package gesagt. Ich wusste nichts von find_library, die tatsächlich die Bibliothek findet. Allerdings mag ich es nicht, dass es es mit voller absoluter Pfad verbindet, also denke ich, ich bleibe bei der Bedingung für jetzt. –