У меня есть 2 папки «inc» и «lib» в моем проекте, у которых есть заголовки и статические библиотеки соответственно. Как сообщить cmake использовать эти 2 каталога для включения и ссылки соответственно?Как добавить путь библиотеки в cmake?
9
A
ответ
18
Самый простой способ сделать это было бы добавить
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
современной версии CMake, которая не добавляет -I and -L
флаги каждого компилятора вызов будет использовать импортированные библиотеки:
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
Если установка INTERFACE_INCLUDE_DIRECTORIES
не добавляет путь, более старые версии CMake также позволяют использовать target_include_directories(bar PUBLIC /path/to/include)
. Однако это no longer works с CMake 3.6 или новее.
Смежные вопросы
- 1. Как добавить библиотеки Windows в CMake?
- 2. CMake: задать определенный пользователем путь для библиотеки
- 3. Заставить CMake использовать полный путь библиотеки
- 4. Cmake не добавляя путь поиска библиотеки
- 5. Как добавить внешний DLL-путь для CMake
- 6. CMake Связывание Путь
- 7. Сторонние библиотеки в CMake
- 8. Ошибка CMake при попытке добавить библиотеки opencv
- 9. Как добавить путь библиотеки к проекту delphi?
- 10. Добавить временный путь к pkg-config в сценарии CMake?
- 11. Как установить библиотеки для компоновщика в cmake?
- 12. Maven добавить туземцев в путь библиотеки
- 13. CMake добавление библиотеки
- 14. Как написать cmake для библиотеки?
- 15. Как настроить внешние библиотеки cmake?
- 16. Префикс/суффикс библиотеки Cmake
- 17. Настройка CMake путь поиска модулей
- 18. Как добавить проклятия в cmake?
- 19. Cmake и ресурсы путь
- 20. Включая CMake-необходимой библиотеки Qt
- 21. CMake FIND_LIBRARY возвращает неправильный путь
- 22. Поведение импортированной библиотеки CMake
- 23. Почему CMake удваивает путь?
- 24. Cmake: создание библиотеки FLANN
- 25. Добавить путь библиотеки к файлу jar
- 26. Как определить имена библиотеки Boost для CMake
- 27. Как искать библиотеки в мультиплатформенных сборках cmake?
- 28. Как использовать/включать библиотеки в Cmake/Kdevelop
- 29. Как экспортировать библиотеки с компонентами в CMAKE?
- 30. В CMake, как найти определенную версию библиотеки?
Получил эту ошибку с CMake 3.6: Ошибка CMake в ... snip .../CMakeLists.txt: 8 (target_include_directories): Невозможно указать включенные каталоги для импортированного целевого «myBar». – nodakai
Действительно, я обновил свой ответ, и теперь он работает для меня с CMake 3.8 – ar31
'link_directories (