现象
在计算机A上调测QGIS测试程序,编译通过,运行出现如下错误。
换另一计算机B执行程序,未发现有该错误。
分析问题
根据上文现象判断,可执行文件本身没有问题,最有可能导致该错误发生的地方应该是可执行文件依赖的动态链接库。
因此,百度可执行文件在运行时寻找和调用dll文件的路径搜索顺序。一般是:
A 可执行文件所在目录;
B 进程当前目录;
C 系统目录,%SystemRoot%/system32
D 16位系统目录;,%SystemRoot%/system
E Windows目录,%SystemRoot%/
F 环境变量PATH中的目录;
出现冲突动态链接库应该就在以上目录中。
解决问题
1、对比计算机A与计算机B的开发环境,重点怀疑对象锁定在 E 环境变量PATH目录 。
计算机A系统比较陈旧,各种开发环境安装较多。下图为计算机A PATH变量 键值。
2、使用屏蔽法找出问题目录。具体操作方法:先备份PATH键值,逐一屏蔽某一目录,重启计算机,运行可执行程序。
最后得到出现冲突的目录,我这里是上图红框中的这个目录。该目录删除后,程序运行正常。
3、到这里,大家基本猜出问题原因:该目录下动态链接库与QGIS依赖动态库有冲突。经过更细致的分析,冲突的动态链接库iconv.dll被定位出来了。
4、验证结果:把iconv.dll改名为iconv1.dll后,程序运行成功。
5、解决办法
方法一:调整两个目录在PATH变量中的顺序,具体做法:把目录1调整到目录2的下面。
方法二:删除目录1或者干脆卸载冲突软件。
今天的文章【QGIS】无法定位程序输入点~于动态链接库~上分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:http://bianchenghao.cn/31450.html