Ошибки компиляции NotepadQQ. Возможно, неправильная версия libxslt или libxml2?
Я пытаюсь скомпилировать NotepaddQQ на компьютере SUSE SLED 11 с использованием Qt5.3 (я знаю... он устарел, но это рабочая машина, и у меня нет прав на его обновление), и я получаю следующую ошибку:
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)
1 ответ
@LIBXML2_
суффикс происходит от версии символа ELF. Кажется, что libQt5WebKit.so
был собран с версией libxslt, которая имела версионные символы, но ваша система libxslt была собрана без версионных символов. Так libQt5WebKit.so
очевидно не был собран с вашей системой libxslt, может быть, на другой машине.
У вас есть два варианта:
- перестраивать
libQt5WebKit.so
используя вашу систему libxslt. - Создайте отдельную версию libxslt с версионными символами и используйте ее при компиляции NotepadQQ.