🛰️ GDAL + vcpkg + Qt Creator 环境搭建总结

41 阅读2分钟

一、 核心环境选择 (MSVC vs MinGW)

  • 结论:在 Windows 上开发复杂的地理信息系统(GIS)应用,首选 MSVC (Visual Studio) 编译器。
  • 原因:GDAL 及其依赖库(PROJ, SQLite等)在 MSVC 下的兼容性和稳定性远高于 MinGW,且 vcpkg 对其支持最完美。

二、 vcpkg 安装与配置

  1. 下载 vcpkg

    • 使用 git clone https://github.com/microsoft/vcpkg.git(若网络慢可使用浅克隆 --depth=1 或下载 ZIP 包)。
  2. 引导安装

    • 在目标文件夹运行 .\bootstrap-vcpkg.bat
  3. 配置环境变量 (重要)

    • 设置系统变量 VCPKG_ROOT 为你的安装路径(如 E:\Libraries\vcpkg)。
    • git 路径加入 Path 以便在任何终端调用。

三、 编译 GDAL

  1. 使用正确的终端:必须打开 "x64 Native Tools Command Prompt for VS 2022" ,确保是 64 位原生环境,避免架构不匹配警告。

  2. 执行安装命令

    vcpkg install gdal:x64-windows
    
    • 此过程会自动处理所有依赖项并完成编译,耗时约 30-60 分钟。

四、 Qt Creator 项目集成 (CMake)

这是让项目“认领” GDAL 的关键步骤:

  1. 设置 Toolchain 文件

    • 在 Qt Creator 的 Build Settings -> CMake variables 中添加:
    • Key: CMAKE_TOOLCHAIN_FILE
    • Value: E:/Libraries/vcpkg/scripts/buildsystems/vcpkg.cmake
  2. 修改 CMakeLists.txt注意:配置不生效时,执行 "Clear CMake Configuration" 是解决 90% 问题的“大招”。

    # 查找库
    find_package(GDAL CONFIG REQUIRED)
    
    # 链接库 (确保 add_executable 目标不重名)
    target_link_libraries(${PROJECT_NAME} PRIVATE GDAL::GDAL)
    

五、 测试代码

main.cpp 中引入头文件并打印版本,确认 .dll 已正确关联:

#include <gdal_priv.h>
#include <QDebug>

// 在 main 函数中
GDALAllRegister();
qDebug() << "GDAL Version:" << GDALVersionInfo("RELEASE_NAME");

💡 避坑小贴士:

  • 紫色文字标识:Git Bash 中的紫色 MINGW64 提示你当前处于模拟 Linux 环境,但在编译 MSVC 库时,建议切换到 VS 原生终端。
  • CMake 冲突:如果遇到 target already exists 报错,检查 CMakeLists.txt 是否重复定义了项目目标(如 add_executable)。