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
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
问题描述:未能找到:“rc.exe”。系统找不到指定的文件。
解决方案:将C:\Program Files (x86)*Windows Kits*\10\bin\10.0.18362.0\x64\rc.exe 添加到环境变量中,重新启动命令行编译;
问题:解析路径乱码: 鈥狤:\006gdal\lib\proj_6_2.lib
解决方法:
nmake.opt中修改的路径错误:
原因:
注:请不要复制属性中是路径,从文件夹中复制路径
以上为64位的编译方法,如果需要使用32的编译需要下载32的proj和sqlite版本,本版本暂时只提供64的版本。
3、成果下载
4、声明
以上通过本人测试与调试,是在项目中实践的方法,经过论证,可以实现,如有问题,请留言,谢谢你的阅读!