Ich habe 2 Ordner "inc" und "lib" in meinem Projekt, die Header bzw. statische Bibliotheken haben. Wie sage ich CMake, diese 2 Verzeichnisse für Include und Linking jeweils zu verwenden?Wie füge ich einen Bibliothekspfad in cmake hinzu?
9
A
Antwort
18
hinzuzufügen wäre
include_directories(${CMAKE_SOURCE_DIR}/inc)
link_directories(${CMAKE_SOURCE_DIR}/lib)
add_executable(foo ${FOO_SRCS})
target_link_libraries(foo bar) # libbar.so is found in ${CMAKE_SOURCE_DIR}/lib
Die moderne CMake-Version, die nicht die -I and -L
Flags zu jedem Compiler Aufruf fügt wäre importierte Bibliotheken Der einfachste Weg, dies zu tun zu verwenden:
add_library(bar SHARED IMPORTED) # or STATIC instead of SHARED
set_target_properties(bar PROPERTIES
IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/lib/libbar.so"
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/include/libbar"
)
set(FOO_SRCS "foo.cpp")
add_executable(foo ${FOO_SRCS})
target_link_libraries(foo bar) # also adds the required include path
Wenn die Einstellung INTERFACE_INCLUDE_DIRECTORIES
den Pfad nicht hinzufügt, können Sie in älteren Versionen von CMake auch target_include_directories(bar PUBLIC /path/to/include)
verwenden. Dies ist jedoch no longer works mit CMake 3.6 oder neuer.
Verwandte Themen
- 1. Curl-Bibliothekspfad in cmake einrichten
- 2. CMake: Wie füge ich eine benutzerdefinierte generische Kompilierungsregel hinzu?
- 3. ActionMailer - Wie füge ich einen Anhang hinzu?
- 4. SpriteKit Wie füge ich einen FixedJoint hinzu?
- 5. Wie füge ich einen Adbannerview in UITableViewController in Swift hinzu?
- 6. Wie füge ich datetimepicker hinzu und füge zweiten hinzu?
- 7. Wie füge ich Multithreading hinzu?
- 8. Wie füge ich einen App_Data-Ordner in Visual Studio hinzu?
- 9. Wie füge ich einen Fremdschlüssel in SequelPro hinzu?
- 10. Wie füge ich einen benutzerdefinierten weitergeleiteten Befehl in WPF hinzu?
- 11. Wie füge ich einen Schalter zum Serverstart in Eclipse hinzu?
- 12. Wie füge ich einen farbigen Rahmen in Cardview hinzu?
- 13. Wie füge ich einen benutzerdefinierten Dateianfang in Visual Studio hinzu?
- 14. Wie füge ich einen Benutzer in Ubuntu hinzu?
- 15. Wie füge ich einen Cron-Job in Linux hinzu
- 16. Wie füge ich einen SSH-Schlüssel in gitlab hinzu?
- 17. Wie füge ich Ordner in dat.gui hinzu?
- 18. Wie füge ich Bilder in JTextPane hinzu?
- 19. Wie füge ich "Projektbeschreibung" in FogBugz hinzu?
- 20. Wie füge ich einen Include-Pfad für Kernelmodul-Makefile hinzu
- 21. Wie füge ich einem Suchfeld im Sharepoint einen Wert hinzu?
- 22. Wie füge ich einen Dienst bei moqui startup hinzu?
- 23. Wie füge ich meiner Aktivität einen Titel hinzu?
- 24. Wie füge ich einen Int zu einem NSDate hinzu?
- 25. Wie füge ich einen Primärschlüssel zu einer Oracle-Ansicht hinzu?
- 26. Wie füge ich einen gzip-Befehl zu Windows CMD hinzu?
- 27. Wie füge ich einen Bot zu einer Telegrammgruppe hinzu?
- 28. Wie füge ich einen globalen Include-Pfad für xcode hinzu
- 29. Wie füge ich einen String zum jQuery Selector hinzu?
- 30. Qt Creator - Wie füge ich einen Compiler hinzu?
Dieser Fehler mit CMake 3.6: CMake-Fehler bei ... snip .../CMakeLists.txt: 8 (target_include_directories): Kann keine Include-Verzeichnisse für importierte Ziel "myBar" angeben. – nodakai
In der Tat habe ich meine Antwort aktualisiert und es funktioniert jetzt für mich mit CMake 3.8 – ar31
'link_directories (