【问题标题】:Errors compiling NotepadQQ. Wrong libxslt or libxml2 version perhaps?NotepadQQ 编译出错。可能是错误的 libxslt 或 libxml2 版本?
【发布时间】:2017-05-04 19:25:52
【问题描述】:

我正在尝试在使用 Qt5.3 的 SUSE SLED 11 机器上编译 NotepaddQQ(我知道......它已经过时了,但它是一台工作机器,我无权更新它)并且正在点击以下内容错误:

Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltComputeSortResult@LIBXML2_1.0.24'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltFreeSecurityPrefs@LIBXML2_1.0.22'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `g_variant_ref'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltEvalAttrValueTemplate@LIBXML2_1.0.11'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltNextImport@LIBXML2_1.0.11'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltGetNsProp@LIBXML2_1.0.11'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltSetSecurityPrefs@LIBXML2_1.0.22'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltSetCtxtSecurityPrefs@LIBXML2_1.0.22'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltTransformError@LIBXML2_1.0.22'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltNewSecurityPrefs@LIBXML2_1.0.22'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltNewTransformContext@LIBXML2_1.0.11'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltParseStylesheetDoc@LIBXML2_1.0.11'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltRegisterExtFunction@LIBXML2_1.0.11'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `g_variant_unref'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltFreeTransformContext@LIBXML2_1.0.11'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltSetLoaderFunc@LIBXML2_1.1.9'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltSaveResultTo@LIBXML2_1.0.11'
Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so: undefined reference to `xsltApplyStylesheetUser@LIBXML2_1.0.11'
etc....

我不确定@LIBXML2_### 后缀是什么意思??? 但我设法找出了我拥有的 libxml2 和 libxslt 版本:

$ xsltproc --version
Using libxml 20706, libxslt 10124 and libexslt 813
xsltproc was compiled against libxml 20701, libxslt 10124 and libexslt 813
libxslt 10124 was compiled against libxml 20701
libexslt 813 was compiled against libxml 20701

是否存在不兼容的地方? 谢谢...

编辑:

$ ldd ~/Qt/5.3/gcc_64/lib/libQt5WebKit.so
/usr2/acourche/Qt/5.3/gcc_64/lib/libQt5WebKit.so: /usr/lib64/libxslt.so.1: no version information available (required by /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5WebKit.so)
/usr2/acourche/Qt/5.3/gcc_64/lib/libQt5WebKit.so: /usr/lib64/libxslt.so.1: no version information available (required by /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5WebKit.so)
/usr2/acourche/Qt/5.3/gcc_64/lib/libQt5WebKit.so: /usr/lib64/libxslt.so.1: no version information available (required by /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5WebKit.so)
/usr2/acourche/Qt/5.3/gcc_64/lib/libQt5WebKit.so: /usr/lib64/libxslt.so.1: no version information available (required by /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5WebKit.so)
    linux-vdso.so.1 =>  (0x00007fac018f2000)
    librt.so.1 => /lib64/librt.so.1 (0x00007fabff0df000)
    libz.so.1 => /lib64/libz.so.1 (0x00007fabfeec8000)
    libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007fabfecbe000)
    libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007fabfeabb000)
    libicui18n.so.52 => /usr2/acourche/Qt/5.3/gcc_64/lib/libicui18n.so.52 (0x00007fabfe69a000)
    libicuuc.so.52 => /usr2/acourche/Qt/5.3/gcc_64/lib/libicuuc.so.52 (0x00007fabfe312000)
    libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fabfdfd5000)
    libxslt.so.1 => /usr/lib64/libxslt.so.1 (0x00007fabfdd99000)
    libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fabfda3d000)
    libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007fabfd777000)
    libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007fabfd532000)
    libgstreamer-0.10.so.0 => /usr/lib64/libgstreamer-0.10.so.0 (0x00007fabfd249000)
    libgstapp-0.10.so.0 => /usr/lib64/libgstapp-0.10.so.0 (0x00007fabfd03c000)
    libgstbase-0.10.so.0 => /usr/lib64/libgstbase-0.10.so.0 (0x00007fabfcde8000)
    libgstinterfaces-0.10.so.0 => /usr/lib64/libgstinterfaces-0.10.so.0 (0x00007fabfcbd7000)
    libgstpbutils-0.10.so.0 => /usr/lib64/libgstpbutils-0.10.so.0 (0x00007fabfc9b5000)
    libgstvideo-0.10.so.0 => /usr/lib64/libgstvideo-0.10.so.0 (0x00007fabfc7a7000)
    libQt5Quick.so.5 => /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5Quick.so.5 (0x00007fabfc1f2000)
    libQt5Qml.so.5 => /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5Qml.so.5 (0x00007fabfbbdd000)
    libQt5Network.so.5 => /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5Network.so.5 (0x00007fabfb878000)
    libQt5Core.so.5 => /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5Core.so.5 (0x00007fabfb144000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fabfaf27000)
    libQt5Gui.so.5 => /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5Gui.so.5 (0x00007fabfa801000)
    libQt5Sql.so.5 => /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5Sql.so.5 (0x00007fabfa5c0000)
    libQt5Positioning.so.5 => /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5Positioning.so.5 (0x00007fabfa381000)
    libQt5Sensors.so.5 => /usr2/acourche/Qt/5.3/gcc_64/lib/libQt5Sensors.so.5 (0x00007fabfa140000)
    libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007fabf9eba000)
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fabf9bb4000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fabf993a000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fabf95be000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fac018f3000)
    libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007fabf93b8000)
    libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007fabf91a5000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fabf8f8f000)
    libicudata.so.52 => /usr2/acourche/Qt/5.3/gcc_64/lib/libicudata.so.52 (0x00007fabf7723000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fabf751f000)
    libxcb-xlib.so.0 => /usr/lib64/libxcb-xlib.so.0 (0x00007fabf731d000)
    libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fabf7100000)
    libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fabf6efc000)
    libpcre.so.0 => /usr/lib64/libpcre.so.0 (0x00007fabf6ccc000)
    libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007fabf6ac6000)
    libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007fabf68c2000)
    libglapi.so.0 => /usr/lib64/libglapi.so.0 (0x00007fabf666a000)
    libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007fabf6467000)
    libX11-xcb.so.1 => /usr/lib64/libX11-xcb.so.1 (0x00007fabf6264000)
    libxcb-glx.so.0 => /usr/lib64/libxcb-glx.so.0 (0x00007fabf604e000)
    libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007fabf5e48000)
    libdrm.so.2 => /usr/lib64/libdrm.so.2 (0x00007fabf5c3b000)

【问题讨论】:

  • 执行ldd Qt5.3/5.3/gcc_64/lib/libQt5WebKit.so并显示结果
  • 错误消息表明您使用的是 Qt 5.3,但在您提到您使用的是 5.5 的问题中。是哪个?
  • 添加了附加信息。抱歉,是 Qt5.3
  • 我没用过SUSE,会不会和缺少开发库有关?在 Debian 中,编译时需要 libxml2-dev 之类的东西。
  • 安装这个:libxslt-devel

标签: qt libxml2 libxslt


【解决方案1】:

@LIBXML2_ 后缀来自 ELF 符号版本控制。似乎libQt5WebKit.so 是使用具有版本符号的 libxslt 版本构建的,但是您的系统 libxslt 是在没有版本符号的情况下构建的。所以libQt5WebKit.so 显然不是用你的系统 libxslt 构建的,可能是在另一台机器上。

你有两个选择:

  • 使用您的系统 libxslt 重建 libQt5WebKit.so
  • 使用版本符号构建单独版本的 libxslt,并在编译 NotepadQQ 时使用它。

【讨论】:

    猜你喜欢
    • 2015-01-15
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多