首页 / 浏览问题 / 组件GIS / 问题详情
gettingstart在银河麒麟运行显示*@png12_0未定义引用
31EXP 2022年10月17日

图片可能看起来不清楚,就是在飞腾1500/2000+银河麒麟v10+qt5.9.6的环境下,

显示/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libQt5Gui.so:对“png_get_INDR@PNG12_0”未定义引用

/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libQt5Gui.so:对“png_get_tRNS@PNG12_0”未定义引用 ......

1个回答

您好,请问您使用的是 SuperMap iObjects C++ 组件哪个版本包呢?对于您遇到的“***未定义引用”的异常,通常有以下两种情况:

  1. gcc 依赖顺序的问题,建议参考 iObjects C++ 离线帮助文档重新配置项目的依赖环境;
  2. gcc 版本的兼容问题,建议可以卸载当前系统的 gcc 后重新安装一次。

希望可以帮到您。

2,258EXP 2022年10月17日
用的SuperMap iObjects C++11.0.0-linux-arm64-all版本,也是按照help文档弄的,QT5.9.5 GCC是5.4.0

建议您检测一下当前系统中是否存在 libpng12 的库,且是否存在多个不同版本的 libpng12 的库。若环境都正常的话,系统应该只有一个 libpng12_0 库。

此外,由于您使用的是 QT 5.9.5 版本,而非 iObjects C++ 默认依赖的 Qt 5.6 版本,因此在编译前建议参考 https://blog.csdn.net/supermapsupport/article/details/127006962 博客中的内容,先重新编译 Extensions4Qt 项目,然后替换 iObjects C++ 中默认自带的 Qt 5.6 版本,如此才能确保您使用的是 Qt 5.9.5 版本的依赖。

您好,确实有两个libpng12,一个在/lib/aarch64-linux-gnu,一个在/supermap/bin/bin下默认好像是调用的/supermap/bin/bin的libpng12.so.0

然后您提供的资料有arm+linux版本的吗

删除/supermap11/bin/bin下的libpng12.so后,出现啊动态库冲突

您好,建议您检查一下 /opt/Qt/5.9/gcc_64/plugins/platformthemes 目录下有没有 libqgtk3.so 库,这个库与 iObjects C++ 组件环境存在冲突,可能会导致上图的问题,建议从该目录中移除 libqgtk3.so 库再运行

全局搜索没有这个libqgtk3库,现在改了改,出现下面的问题,请问有什么头绪吗

不抛任何异常直接结束程序的话,通常有以下2种可能的原因:

  1. iObjects C++ 组件许可配置不成功;
  2. iObjects C++ 组件运行调试时依赖的环境变量配置不成功。

如果确认上述情况都没有问题的话,建议您私信我您的联系方式,我远程给您看看。

您好,已经私信给您,注意查收。
您好,建议您检查一下 supermap/bin 是否放到 LD_LIBRARY_PATH 的最前面,如果没有的话需要将  supermap/bin 配置到系统 LD_LIBRARY_PATH 环境的最前面。
...