美文网首页GIS
QGIS3.10 GDAL模块dyld:Symbol not f

QGIS3.10 GDAL模块dyld:Symbol not f

作者: 菲斯坦但提勒斯 | 来源:发表于2020-02-17 19:49 被阅读0次

    大家后,这是我的第一篇技术博客,采用简书因为它的用户体验和清晰明了。废话少说,对于GISer来说,QGIS由于其开源的特性和详尽的插件功能,被众多地理信息用户所选择。由于近期要做一些水动力学模型的前处理,于是就下载安装了QGIS3.10.2进行工作。

    机器环境:MACOS 10.14.6(Mojave)

    QGIS3.10.2安装的官网上的最新版本https://qgis.org/downloads/macos/qgis-macos-pr.dmg,也可以安装3.4稳定版本:https://qgis.org/downloads/macos/qgis-macos-ltr.dmg,我选择的是3.10.2,效果和3.4一样。从3.4开始QGIS提供集成了python,GDAL,GRASS等众多基础环境和插件的安装包,零配置,推荐。不推荐自己一步一步的安装配置了。

    在利用GDAL的模块【栅格提取】进行DEM切割时,

    切割失败,日志中的具体错误表现如下:

    GDAL command output:

    dyld: Symbol not found: _iconv

    Referenced from: /usr/lib/libcups.2.dylib

    Expected in: /Applications/QGIS3.10.app/Contents/MacOS/lib/libiconv.2.dylib

    in /usr/lib/libcups.2.dylib

    搜遍了大江南北国内国外也没找到一个一样的错误,和解决方案。不得已自己做了大量思考,原谅我好久没有做技术了,所以思考过程确实很漫长。不过最后还是搞定了。

    错误原因:

    QGIS在调用GDAL的插件时用的命令是:

    processing.run("gdal:cliprasterbyextent", {'INPUT':'/zys/develop/jumahe/dem/all1.tif','PROJWIN':'473173.63254772004,482875.5593773756,4342250.956946625,4350751.327620829 [EPSG:4548]','NODATA':None,'OPTIONS':'','DATA_TYPE':0,'EXTRA':'','OUTPUT':'/zys/develop/jumahe/dem/testgrid.tif'})(这个可以在【处理】-【历史】模块中看到)

    调用时需要链接/Applications/QGIS3.10.app/Contents/MacOS/lib/libiconv.2.dylib这个动态链接库,然而在系统目录/usr/lib下面已经存在一个libiconv.2.dylib(我的系统里版本高于QGIS自己带的),我估计这个系统目录/usr/lib/libiconv.2.dylib已经被/usr/lib/libcups.2.dylib链接,QGIS去链接自己带libiconv.2.dylib失败。

    解决方案:

    删除/Applications/QGIS3.10.app/Contents/MacOS/lib/libiconv.2.dylib文件,记得删除时先备份一下,万一这招不灵呢。

    附加彩蛋:

    这一招不仅仅能解决GDAL插件的运行错误,GRASS和SAGA都类似。

    相关文章

      网友评论

        本文标题:QGIS3.10 GDAL模块dyld:Symbol not f

        本文链接:https://www.haomeiwen.com/subject/kxsifhtx.html