參考:
https://blog.csdn.net/weixin_42141589/article/details/94357199
https://trac.osgeo.org/gdal/wiki/BuildingOnWindows#BasicOptions
1、下載並安裝Visual Studio Community 2019:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=16;
2、下載並安裝CMake 3.19.0(cmake-3.19.0-rc1-win64-x64.msi):https://cmake.org/download/,Install Options勾選Add CMake to the system PATH for all users,安裝完成后打開命令提示符輸入 cmake --version 驗證配置是否成功;
3、下載庫到各自的目錄並解壓:
GDAL 3.1.4:https://gdal.org/download.html;
PROJ 6.3.2:https://proj.org/download.html;
SQLite 3.33.0(Source Code下的sqlite-amalgamation-3330000.zip,和Precompiled Binaries for Windows下的sqlite-dll-win64-x64-3330000.zip和sqlite-tools-win32-x86-3330000.zip):https://www.sqlite.org/download.html;
4、編譯SQLite庫:
在SQLite目錄下創建空項目並添加sqlite3.h、sqlite3ext.h、sqlite3.c、sqlite3.def;
右鍵點擊項目-屬性,配置選擇所有配置,平台選擇所有平台,點擊配置屬性-常規-配置類型-靜態庫(.lib);
點擊C/C++-預處理器-預處理器定義-編輯添加:
_USRDLL
SQLITE_ENABLE_RTREE
SQLITE_ENABLE_COLUMN_METADATA
SQLITE_ENABLE_FTS5
SQLITE_ENABLE_UNLOCK_NOTIFY
點擊鏈接器-輸入-模塊定義文件-添加sqlite3.def,點擊應用-確定;
修改模塊定義文件sqlite3.def:在最后追加sqlite3_unlock_notify;
選擇配置Release、平台x64,點擊生成-生成解決方案以生成靜態庫SQLite.lib;
在SQLite目錄下分別創建include、lib和bin文件夾,將SQLite.lib放入lib文件夾中,將sqlite3.h、sqlite3ext.h放入include文件夾中,將sqlite-tools-win32-x86-3330000文件夾中的sqlite3.exe放入bin文件夾中。
5、編譯PROJ庫:
在PROJ目錄下創建build文件夾,打開CMake在源碼位置中打開proj-6.3.2文件夾,在創建位置中打開build文件夾;
點擊Configure,選擇Visual Studio 16 2019、x64,點擊Finish;
配置會出現錯誤,找到EXE_SQLITE3、SQLITE3_INCLUDE_DIR和SQLITE3_LIBRARY三個屬性分別賦值SQLite3.exe、include和SQLite3.lib的路徑,賦值CMAKE_INSTALL_PREFIX屬性為文件生成目錄,點擊Configure,完成提示Configuring done,點擊Generate,完成提示Generating done,此時build文件夾里存在PROJ4.sln;
打開x64 Native Tools Command Prompt for VS 2019:
cd d:/PROJ/build
msbuild ALL_BUILD.vcxproj /p:Configuration="Release"
msbuild INSTALL.vcxproj /p:Configuration="Release"
6、編譯GDAL庫:
使用Visual Studio 2019打開nmake.opt文件修改並保存:
在第42行,改為MSVC_VER=1920(VS2019版本應該為1920及以上,視自己編譯器而定);
在第66行,改為GDAL_HOME=生成文件的路徑;
在第207行,改為WIN64=YES(如果不生成64位版本則注釋本行);
在第234行,改為DLLBUILD=0進行靜態編譯(動態編譯則為1);
在第254行,找到PROJ_INCLUDE、PROJ_LIBRARY,分別設置為PROJ的include和lib文件夾(PROJ_INCLUDE=-I后為路徑),並修改.lib的名字;
在第642行,找到SQLITE_INC、SQLITE_LIB,路徑設置同上;
打開x64 Native Tools Command Prompt for VS 2019:
cd d:/GDAL/gdal-3.1.4
nmake /f makefile.vc (Debug版添加DEBUG=1)
nmake /f makefile.vc devinstall
7、在Visual Studio 2019項目中配置GDAL庫:創建Visual Studio 2019空項目,配置選擇所有配置,平台選擇所有平台,右鍵點擊項目-屬性-C/C++-附加包含目錄-編輯添加GDAL的include文件夾路徑,點擊鏈接器-附加庫目錄-編輯添加GDAL的lib文件夾路徑,點擊鏈接器-輸入-附加依賴項-編輯添加gdal_i.lib,點擊應用-確定,選擇配置Release、平台x64即可運行程序。