GDAL源码编译及接口测试demo
源码下载
1 网上下载gdal源码文件
官网下载https://trac.osgeo.org/gdal/wiki/DownloadSource
我们下载的文件有
Geos的下载页
我们下载的geos
PROJ4 下载
Proj4下载页
选择下载zip文件
SWIG 下载
用于C#语言编译的swig下载页
https://sourceforge.net/projects/swig/files/swigwin/swigwin-4.0.1/
我们下载的3.01版本 4.01版本在编译c#源码时会如下错误,建议使用3.01版本的swig来编译其他平台使用GDAL版本
为了继承postgis和oracle的插件,找到oracle的OCI.DLL和libpq.dll,根据编译的32位和64位的不同,我们需要32位的dll和64位的dll,这两个动态库都可以在各自的安装包中找到。为了兼容10.2.2版本的数据库管理系统项目,使用了32位的dll
编译环境
当前编译环境
Win10+Vs2019+geos-3.8.1.tar.bz2+PROJ-master.zip(7.0.1)+ swig-4.0.1.tar.gz
Geos 与proj4编译
Geos的编译
将压缩文件解压到“E:\gdalcompile\geos-3.8.1\geos-3.8.1”尽量不要设置中文路径,路径不要包含空格。
以管理员权限打开cmd
cmd转到geos的目录下:
我们需要在编译32位的geos
编译平台选择Win32 X86
对于cmake不同平台的选择
https://cmake.org/cmake/help/git-stage/generator/Visual%20Studio%2016%202019.html
Visual Studio error C2001:常量中有换行符(解决办法)
将文件编码进行一个手动(如记事本)转换,改成UTF-8-BOM格式,可以使用NOTEPAD来修改文本文件
编译proj4
命令行编译proj4
使用命令行编译出的文件一直是X64位的文件,故后来使用的CmakeGUI来编译
https://www.sqlite.org/download.html sqllite官网,可以直接下载X86的dll版本
使用cmakegui编译Proj4
重新编译Proj4 使用cmakeGUI来编译
GDAL 3.1.0的编译
为了调试,我们编译debug版本的
切换到vcvars32的编译环境
编译debug版本加入 DEBUG=1;
编译出错,
修改pg的位置
清理编译产生的临时文件
nmake -f makefile.vc clean
清理之后再次编译
再次清理掉
新增环境变量
编译完成 后输出nmake -f makefile.vc debug=1 devinclude
Vs2019版本升级到1926后会出现没有识别的标识符错误
可以在Runtime-error 需要包含头文件 #include <stdexception>
下面我们继续编译net版本的gdal,并带有调试信息的
nmake /f makefile.vc interface
用swig4.0以上的版本编辑会报这个错误
现在改用swig 3.0来编辑
debug的使用
如果需要调试的话,将相关pdb文件copy到bin目录下
如果需要编译release版本,同理