首页 > 解决方案 > 如何避免用户使用 CMake 手动安装 GDAL 依赖项?

问题描述

我知道如何使用 CMake 将 GDAL 与 C++ 应用程序链接起来。该过程在下文中总结为两个步骤:(1)在系统上安装依赖项,(2)将其链接到 C++ 应用程序(有关详细信息,请参见此处)。

  1. 安装 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
  2. 使用 CMake 将 GDAL 与 C++ 应用程序链接:

        # 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 依赖,我使用了ExternalProject带有 Superbuild 模式的 CMake 功能,我认为类似的方法应该与管理 GDAL 依赖相关。但是,我对现代 CMake非常陌生,我很难适应这个处理 Boost 依赖项的 CMake 项目来管理 GDAL 依赖项。

任何有助于这样做的一般或逐步指导(或不这样做的充分理由)都会有所帮助。

标签: c++cmakeinstallationdependenciesgdal

解决方案


推荐阅读