用 vcpkg 安装 gdal后,自己再编译filegdb插件, release版本没问题, debug版执行 GDALAllRegister() 就崩溃。
没办法,把vcpkg下载好的gdal源码拷贝出来,修改好 nmake.opt, 用nmmake自己编译~~~
源码位置: E:\tools\windows\vcpkg\vcpkg-2022.08.15\buildtrees\gdal\src\v3.5.1-2bdd297034
修改位置:
cmd进到源码根目录下,执行命令:
debug版:
nmake /f makefile.vc WIN64=YES DEBUG=1
release版:
nmake /f makefile.vc WIN64=YES
安装命令:
debug版:
nmake /f makefile.vc install
nmake /f makefile.vc devinstall
release版:
nmake /f makefile.vc
nmake /f makefile.vc devinstall
头文件可以直接用vcpkg安装的gdal的头文件, 库文件用自己编译的。 这样就不需要安装了
附上测试代码:
void testDriver(){
cout << " >>>>>>> go <<<<<<<" << endl;
GDALAllRegister();
cout << "GDALAllRegister ok" << endl;
const char *pszDriverName = "FileGDB";
CPLSetConfigOption( "GDAL_FILENAME_IS_UTF8", "NO" );
CPLSetConfigOption( "SHAPE_ENCODING", "CP936" );
GDALDriver *poGdbDriver = GetGDALDriverManager()->GetDriverByName(pszDriverName);
if (poGdbDriver == nullptr)
{
cout << "load driver failed" << endl;
return ;
}
cout << poGdbDriver << endl;
}
注: 为什么要拷贝vcpkg的源码,因为它已经做好了很多设置,只需要把自己额外的支持修改好就行了~~
让火焰净化一切
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?