共享对象过滤器导致 Solaris 10 上的应用程序崩溃
我已经在使用 Qt 4.7.2 的 Solaris 10 上编译了我的应用程序。 可执行文件的 ldd 显示如下:
libQtScript.so.4 =>
libclucene.so.0 => (file not found)
libX11.so.4 => /usr/lib/libX11.so.4
libQtWebKit.so.4 =>
libQtXml.so.4 =>
libQtGui.so.4 =>
libQtNetwork.so.4 =>
libresolv.so.2 => /lib/libresolv.so.2
libsocket.so.1 => /lib/libsocket.so.1
libxnet.so.1 => /lib/libxnet.so.1
libnsl.so.1 => /lib/libnsl.so.1
libQtCore.so.4 =>
libpthread.so.1 => /lib/libpthread.so.1
librt.so.1 => /lib/librt.so.1
libCstd.so.1 => /usr/lib/libCstd.so.1
libCrun.so.1 => /usr/lib/libCrun.so.1
libm.so.2 => /lib/libm.so.2
libthread.so.1 => /lib/libthread.so.1
libc.so.1 => /lib/libc.so.1
libXext.so.0 => /usr/openwin/lib/libXext.so.0
libXrender.so.1 => /usr/sfw/lib/libXrender.so.1
libfreetype.so.6 => /usr/sfw/lib/libfreetype.so.6
libSM.so.6 => /usr/lib/libSM.so.6
libICE.so.6 => /usr/lib/libICE.so.6
libmp.so.2 => /lib/libmp.so.2
libmd.so.1 => /lib/libmd.so.1
libscf.so.1 => /lib/libscf.so.1
libdl.so.1 => /lib/libdl.so.1
libaio.so.1 => /lib/libaio.so.1
libz.so.1 => /usr/lib/libz.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
/usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
/platform/SUNW,Sun-Fire-V490/lib/libc_psr.so.1
/platform/SUNW,Sun-Fire-V490/lib/libmd_psr.so.1
我的应用程序正在崩溃,并且 dbx 显示 libc_psr.so.1 的 _memcpy 是问题所在。 我开始了解辅助过滤器的概念,这导致从 libc_psr.so.1 而不是 libc.so.1 选择 memcpy 的定义 有什么方法可以停止此过滤,以便可以从 libc 而不是 libc_psr 或任何其他解决方法中获取 memcpy 的定义?
I have compiled my application on Solaris 10 which is using Qt 4.7.2.
ldd of executable shows following:
libQtScript.so.4 =>
libclucene.so.0 => (file not found)
libX11.so.4 => /usr/lib/libX11.so.4
libQtWebKit.so.4 =>
libQtXml.so.4 =>
libQtGui.so.4 =>
libQtNetwork.so.4 =>
libresolv.so.2 => /lib/libresolv.so.2
libsocket.so.1 => /lib/libsocket.so.1
libxnet.so.1 => /lib/libxnet.so.1
libnsl.so.1 => /lib/libnsl.so.1
libQtCore.so.4 =>
libpthread.so.1 => /lib/libpthread.so.1
librt.so.1 => /lib/librt.so.1
libCstd.so.1 => /usr/lib/libCstd.so.1
libCrun.so.1 => /usr/lib/libCrun.so.1
libm.so.2 => /lib/libm.so.2
libthread.so.1 => /lib/libthread.so.1
libc.so.1 => /lib/libc.so.1
libXext.so.0 => /usr/openwin/lib/libXext.so.0
libXrender.so.1 => /usr/sfw/lib/libXrender.so.1
libfreetype.so.6 => /usr/sfw/lib/libfreetype.so.6
libSM.so.6 => /usr/lib/libSM.so.6
libICE.so.6 => /usr/lib/libICE.so.6
libmp.so.2 => /lib/libmp.so.2
libmd.so.1 => /lib/libmd.so.1
libscf.so.1 => /lib/libscf.so.1
libdl.so.1 => /lib/libdl.so.1
libaio.so.1 => /lib/libaio.so.1
libz.so.1 => /usr/lib/libz.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
/usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
/platform/SUNW,Sun-Fire-V490/lib/libc_psr.so.1
/platform/SUNW,Sun-Fire-V490/lib/libmd_psr.so.1
My application is crashing and dbx shows that _memcpy of libc_psr.so.1 is the problem.
I came to know about concept of auxiliary filters which is causing to pick definition of memcpy from libc_psr.so.1 instead of libc.so.1
Is there any way to stop this filtering so that definition of memcpy could be picked up from libc instead of libc_psr oa any other workaround ??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试导出
阅读此内容
Try exporting
Read this