无法定位程序输入点于动态链接库

以前遇到此问题,是编译多个版本,导致的lib和dll的版本不一致。

这次编译qgis sdk,明明是同一版本的,仍然报多个此类错误,根据网上推荐的方法,下载depends.exe,打开qgis_core.dll后,果然在其依赖关系里找到了原因,原来是以前装java运行时时定义了环境变量,里面有一个zip.dll,qgis_core显然不会依赖此dll。把C:\OSGeo4W\bin环境变量提到该Java环境变量的上方后,问题顺利解决。

因此,要特别注意动态库的引用顺序。见Dynamic-link library search order - Win32 apps | Microsoft Learn

运行过程中可能报多个dll错误,这些错误可能是关联性的。关键是根据直接引用的dll找到线索。如本次虽然报了qgis_core.dll、zip.dll、jvm.dll等,但都是由qgis_core引用了错误的zip所致。

posted @ 2024-07-16 09:56  jwwry  阅读(2)  评论(0编辑  收藏  举报