一、 核心环境选择 (MSVC vs MinGW)
- 结论:在 Windows 上开发复杂的地理信息系统(GIS)应用,首选 MSVC (Visual Studio) 编译器。
- 原因:GDAL 及其依赖库(PROJ, SQLite等)在 MSVC 下的兼容性和稳定性远高于 MinGW,且 vcpkg 对其支持最完美。
二、 vcpkg 安装与配置
-
下载 vcpkg:
- 使用
git clone https://github.com/microsoft/vcpkg.git(若网络慢可使用浅克隆--depth=1或下载 ZIP 包)。
- 使用
-
引导安装:
- 在目标文件夹运行
.\bootstrap-vcpkg.bat。
- 在目标文件夹运行
-
配置环境变量 (重要) :
- 设置系统变量
VCPKG_ROOT为你的安装路径(如E:\Libraries\vcpkg)。 - 将
git路径加入Path以便在任何终端调用。
- 设置系统变量
三、 编译 GDAL
-
使用正确的终端:必须打开 "x64 Native Tools Command Prompt for VS 2022" ,确保是 64 位原生环境,避免架构不匹配警告。
-
执行安装命令:
vcpkg install gdal:x64-windows- 此过程会自动处理所有依赖项并完成编译,耗时约 30-60 分钟。
四、 Qt Creator 项目集成 (CMake)
这是让项目“认领” GDAL 的关键步骤:
-
设置 Toolchain 文件:
- 在 Qt Creator 的 Build Settings -> CMake variables 中添加:
- Key:
CMAKE_TOOLCHAIN_FILE - Value:
E:/Libraries/vcpkg/scripts/buildsystems/vcpkg.cmake
-
修改 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)。