GDAL(C++版)编译

GDAL(C++版)编译

1、proj库准备、SQLite库准备(针对GDAL3版本)

链接:GDAL

2、编译

常见问题描述(无法解析的外部符号):如图
正在创建库 gdal_i.lib 和对象 gdal_i.exp
LINK : error LNK2001: 无法解析的外部符号 _OSRValidate
LINK : error LNK2001: 无法解析的外部符号 _OGR_G_GetPointCount
LINK : error LNK2001: 无法解析的外部符号 _OGRRegisterAll
LINK : error LNK2001: 无法解析的外部符号 _GDALSimpleImageWarp@36
LINK : error LNK2001: 无法解析的外部符号 _GDALReprojectImage@48
LINK : error LNK2001: 无法解析的外部符号 _GDALComputeMedianCutPCT@32
LINK : error LNK2001: 无法解析的外部符号 _GDALDitherRGB2PCT@28
LINK : error LNK2001: 无法解析的外部符号 _OCTNewCoordinateTransformation@8
gdal300.dll : fatal error LNK1120: 8 个无法解析的外部命令
常见编译错误
解决方案:下载编译c++版:链接 GDAL
修改nmake.opt文件
1、进入库文件夹中,找到nmake.opt文件,用文本编译器(notepad++)或者vs打开。
第41行,设置MSVC_VER=设置为1922(VS2019版本,根据编译器来确定)。
第57行,设置
GDAL_HOME =生成文件的路径。
第218行,设置
DLLBUILD=1启动动态编译(dll)、 0为静态编译。
第238行,将
PROJ_INCLUDE PROJ_LIBRARY
,分别设置为解压PROJ时的include(-I后为地址)和 lib文件路径。(proj路径)
第509行,设置SQLITE_INC SQLITE_LIB,路径同上。(sqlite路径)
2、打开x64 Native Tools Command Prompt for VS 2019进入库文件夹(nmake.opt所在文件夹),输入命令:
(也可以使用VCVARS64.BAT。以管理员身份执行cmd,(cd命令)找到并运行编译器下的VCVARS64.BAT。可在vs安装目录下搜索)

nmake -f makefile.vc  WIN64=1 
nmake /f makefile.vc devinstall  WIN64=1 

debug版:

nmake /f makefile.vc DEBUG=1  WIN64=1 
nmake /f makefile.vc devinstall  WIN64=1 

以上为64位的编译方法,如果需要使用32的编译需要下载32的proj和sqlite版本,本版本暂时只提供64的版本。

3、成果下载

C++ 版GDAL3(64位)

4、声明

以上通过本人测试与调试,是在项目中实践的方法,经过论证,可以实现,如有问题,请留言,谢谢你的阅读!

发布了35 篇原创文章 · 获赞 8 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/wenming111/article/details/100887730