一、源码下载proj和sqlite和gdal:
本次下载的是proj版本是proj 8.1.0
下载地址:https://download.osgeo.org/proj/proj-8.1.0.tar.gz
sqlite是sqlite3.36
https://www.sqlite.org/2021/sqlite-amalgamation-3360000.zip
gdal 是 gdal3.3.1
https://github.com/OSGeo/gdal/releases/download/v3.3.1/gdal-3.3.1.tar.gz
解压到同级目录
gdal-3.3.1 也在上面两个的同级目录
二、配置编译环境
set BUILD_TYPE=debug
#或者设置release,根据你的需求来设置
set PLATFORM=x64
#或者设置x86,根据你的需求来设置
#vs2015 的vs环境变量为Vs140 其他版本的vs根据你的需求配置。
set VSENV=%VS140COMNTOOLS%\..\..\vc
#vs2015的路径设置到环境变量里面去
set path=%VSENV%;%path%
call "%VSENV%\vcvarsall.bat" %PLATFORM%
#编译期间,需要用到cmake。 可以将cmake命令设置到path环境变量里面去例如
set path=D:\cmake-3.14.3-win32-x86\bin;%path%
三、windows源码编译sqlite3.36
至于sqlite3.def. 你可以查资料如何创建
官方网站下载sqlite-dll-win64-x64-3360000.zip 文件中包含def文件
其实就是一个文本文件,里面有需要导出函数的列表,差不多200多行。
cd sqlite-amalgamation-3360000
lib /DEF:sqlite3.def /MACHINE:%PLATFORM%
编译生成sqlite3.lib
根据你设定/MACHINE:的x86还是x64 可以编译相应的lib文件。
四、源码编译proj8.1.0
cd proj-8.1.0
mkdir build
cd build
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=%BUILD_TYPE% -DBUILD_TESTING=OFF -DSQLITE3_INCLUDE_DIR=../../sqlite-amalgamation-3360000/ -DSQLITE3_LIBRARY=../../sqlite-amalgamation-3360000/sqlite3.lib -DENABLE_CURL=OFF -DENABLE_TIFF=OFF -DBUILD_PROJSYNC=OFF
生成的结果为:
生成的lib文件夹下有proj.lib或者proj_d.lib 根据你设定的debug和release来区分两者。
生成的data文件夹里面的数据是有用的。后面使用proj的时候需要用到。
五、windows源码编译gdal3.3.1
1 配置gdal的环境
cd gdal-3.3.1
set PROJ_FLAGS=-DPROJ_STATIC
set PROJ_INCLUDE=-I%cd%\proj-8.1.0\src
set PROJ_LIBRARY=%OUTDIR%\proj.lib
set SQLITE_LIB=%cd%\sqlite-amalgamation-3360000\sqlite3.lib
set SQLITE_INC=-I%cd%\sqlite-amalgamation-3360000
set GDAL_HOME=%cd%\gdal
if debug
nmake /f makefile.vc MSVC_VER=%MSVC_VER% DEBUG=1 WITH_PDB=1
else if release
nmake /f makefile.vc MSVC_VER=%MSVC_VER%
nmake /f makefile.vc devinstall
2. nmake相关的命令就是编译和安装了