Я знаю, как связать GDAL с приложением C ++, используя CMake. Далее процедура описана в два этапа: (1) установка зависимости в системе и (2) ее привязка к приложению C ++ (см. здесь для получения более подробной информации).
Установите GDAL (здесь, в Ubuntu 18.04)
- Добавьте PPA к источникам:
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
- Обновление:
sudo apt-get update
- Установите GDAL и файлы его разработки:
sudo apt-get install gdal-bin libgdal-dev
- Проверка установки:
gdalinfo --version
Связь GDAL с приложением C ++ с использованием CMake:
# find system installed GDAL package with predefined CMake variable for finding GDAL
find_package(GDAL REQUIRED)
...
# Specify location of GDAL header files
include_directories( include ${GDAL_INCLUDE_DIRS})
...
# Specify GDAL libraries to link your cpp executable target against
target_link_libraries( your_cpp_executable_target_name ${GDAL_LIBRARIES})
Каков наиболее удобный способ избежать установки пользователем зависимости вручную? То есть, как убедиться, что отсутствующая зависимость не остановит конфигурацию, и загрузить / построить зависимость, если она не найдена в системе?
Для управления зависимостью Boost я использовал функцию CMake ExternalProject
с шаблон Superbuild, и я думаю, что подобный подход должен быть применим для управления зависимостями GDAL. Однако я очень новичок в современном CMake , и я изо всех сил пытаюсь адаптировать этот проект CMake, обрабатывающий зависимость Boost , для управления зависимостью GDAL.
Любое общее или шаг пошаговые инструкции, помогающие сделать (или веские причины этого не делать).