[Interest] Link error while building Qt/32 on Linux 64 bits

Henry Skoglund fromqt at tungware.se
Sun Aug 27 03:56:08 CEST 2017


Hi, about that missing libSM.so, some googling found this:
https://askubuntu.com/questions/611933/missing-libsm-so-6-library-qt-creator-installation-error

Rgrds Henry


On 2017-08-27 03:25, Christian Gagneraud wrote:
> Hi there,
> 
> I'm trying to build a 32 bits version of Qt on a 64 bits Linux machine
> (KUbuntu 17.04).
> 
> At the very beginning i wouldn't even pass the bootstrapping of Qt. So
> i installed all the 'lib32' packages (eg, lib32stdc++, ...) and some
> i386 version of the build dependencies listed on Qt Wiki.
> 
> I can now pass the configure stage, but the build fails while linking
> libQt5XcbQpa.
> 
> See below for details. I wonder if i need to pass in some CFLAGS,
> CXXFLAGS, LDFLAGS to ./configure
> 
> Any help appreciated. Thanks,
> Chris
> 
> 
> The error is:
> g++ -m32 -Wl,--no-undefined -Wl,--version-script,QtXcbQpa.version
> -Wl,-O1 -fuse-ld=gold -Wl,--enable-new-dtags
> -Wl,-rpath,/home/krys/Projects/qt5/qtbase/lib -shared
> -Wl,-Bsymbolic-functions -Wl,-soname,libQt5XcbQpa.so.5 -o
> libQt5XcbQpa.so.5.9.0 .obj/qxcbclipboard.o .obj/qxcbconnection.o
> .obj/qxcbintegration.o .obj/qxcbkeyboard.o .obj/qxcbmime.o
> .obj/qxcbdrag.o .obj/qxcbscreen.o .obj/qxcbwindow.o
> .obj/qxcbbackingstore.o .obj/qxcbwmsupport.o
> .obj/qxcbnativeinterface.o .obj/qxcbcursor.o .obj/qxcbimage.o
> .obj/qxcbxsettings.o .obj/qxcbsystemtraytracker.o
> .obj/qxcbconnection_xi2.o .obj/qxcbsessionmanager.o
> .obj/qxcbglintegrationfactory.o .obj/qxcbglintegration.o
> .obj/qxcbnativeinterfacehandler.o .obj/atom.o .obj/xkb-compat.o
> .obj/context.o .obj/xkb-keymap.o .obj/keysym.o .obj/keysym-utf.o
> .obj/state.o .obj/text.o .obj/context-priv.o .obj/keymap-priv.o
> .obj/utils.o .obj/utf8.o .obj/action.o .obj/ast-build.o .obj/compat.o
> .obj/expr.o .obj/include.o .obj/keycodes.o .obj/keymap-dump.o
> .obj/keymap.o .obj/keywords.o .obj/rules.o .obj/scanner.o
> .obj/symbols.o .obj/types.o .obj/vmod.o .obj/xkbcomp.o .obj/parser.o
> .obj/util.o .obj/x11-keymap.o .obj/x11-state.o
> .obj/moc_qxcbconnection.o .obj/moc_qxcbmime.o
> .obj/moc_qxcbnativeinterface.o .obj/moc_qxcbsystemtraytracker.o
> .obj/moc_qxcbglintegrationplugin.o  -lxcb-xinerama
> -L/home/krys/Projects/qt5/qtbase/lib -lQt5ServiceSupport
> -lQt5ThemeSupport -lQt5EventDispatcherSupport -lQt5FontDatabaseSupport
> -lfontconfig -lfreetype -lQt5LinuxAccessibilitySupport
> -lQt5AccessibilitySupport -lGL -lQt5Gui -lQt5DBus -lQt5Core -lpthread
> -lX11 -lX11-xcb -lXi -lSM -lICE -lxcb-xkb -lxcb-render-util
> -lxcb-render -lxcb -lxcb-shm -lxcb-sync -lxcb-xfixes -lxcb-randr
> -lxcb-image -lxcb-keysyms -lxcb-icccm -lxcb-shape -lGL
> /usr/bin/ld.gold: warning: skipping incompatible
> //usr/lib/x86_64-linux-gnu/libSM.so while searching for SM
> /usr/bin/ld.gold: error: cannot find -lSM
> /usr/bin/ld.gold: warning: skipping incompatible
> //usr/lib/x86_64-linux-gnu/libICE.so while searching for ICE
> /usr/bin/ld.gold: error: cannot find -lICE
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QXcbSessionManager::~QXcbSessionManager(): error: undefined reference
> to 'SmcCloseConnection'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QXcbSessionManager::release(): error: undefined reference to
> 'SmcInteractDone'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> sm_setProperty(char const*, char const*, int, SmPropValue*) [clone
> .part.2]: error: undefined reference to 'SmcSetProperties'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QSmSocketReceiver::socketActivated(int): error: undefined reference to
> 'SmcGetIceConnection'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QSmSocketReceiver::socketActivated(int): error: undefined reference to
> 'IceProcessMessages'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QXcbSessionManager::QXcbSessionManager(QString const&, QString
> const&): error: undefined reference to 'SmcOpenConnection'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QXcbSessionManager::QXcbSessionManager(QString const&, QString
> const&): error: undefined reference to 'SmcGetIceConnection'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QXcbSessionManager::QXcbSessionManager(QString const&, QString
> const&): error: undefined reference to 'IceConnectionNumber'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> sm_setProperty(QString const&, QStringList const&): error: undefined
> reference to 'SmcDeleteProperties'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> sm_performSaveYourself(QXcbSessionManager*): error: undefined
> reference to 'SmcInteractDone'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> sm_performSaveYourself(QXcbSessionManager*): error: undefined
> reference to 'SmcSaveYourselfDone'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> sm_performSaveYourself(QXcbSessionManager*): error: undefined
> reference to 'SmcInteractDone'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> sm_performSaveYourself(QXcbSessionManager*): error: undefined
> reference to 'SmcRequestSaveYourselfPhase2'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QXcbSessionManager::allowsInteraction(): error: undefined reference to
> 'SmcInteractRequest'
> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
> QXcbSessionManager::allowsErrorInteraction(): error: undefined
> reference to 'SmcInteractRequest'
> collect2: error: ld returned 1 exit status
> Makefile.xcb_qpa_lib:347: recipe for target
> '../../../../lib/libQt5XcbQpa.so.5.9.0' failed
> make[6]: *** [../../../../lib/libQt5XcbQpa.so.5.9.0] Error 1
> make[6]: Leaving directory
> '/home/krys/Projects/qt5/qtbase/src/plugins/platforms/xcb'
> [...]
> 
> I have installed the i386 packages for libSM and libICE using "apt-get
> install libsm6:i386 libice6:i386":
> 
> krys at krys-pc:~/Projects/qt5$ ls -l /usr/lib/i386-linux-gnu/libSM*
> lrwxrwxrwx 1 root root    14 Jul 13  2014
> /usr/lib/i386-linux-gnu/libSM.so.6 -> libSM.so.6.0.1
> -rw-r--r-- 1 root root 30164 Jul 13  2014 /usr/lib/i386-linux-gnu/libSM.so.6.0.1
> krys at krys-pc:~/Projects/qt5$ ls -l /usr/lib/i386-linux-gnu/libICE*
> lrwxrwxrwx 1 root root    15 Jul 13  2014
> /usr/lib/i386-linux-gnu/libICE.so.6 -> libICE.so.6.3.0
> -rw-r--r-- 1 root root 92396 Jul 13  2014
> /usr/lib/i386-linux-gnu/libICE.so.6.3.0
> 
> But as can be seen above, the linker doesn't seem to look for SO in
> this directory and instead look into /usr/lib/x86_64-linux-gnu.
> 
> I don't think my environment is mis-leading the build:
> krys at krys-pc:~/Projects/qt5$ env | grep PATH
> KICAD_PATH=/usr/share/kicad
> MANDATORY_PATH=/usr/share/gconf//usr/share/xsessions/plasma.mandatory.path
> DEFAULTS_PATH=/usr/share/gconf//usr/share/xsessions/plasma.default.path
> XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
> XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session2
> PATH=/opt/Qt/Tools/QtCreator/bin:/opt/QtInstallerFramework/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
> krys at krys-pc:~/Projects/qt5$ env | grep LD
> OLDPWD=/home/krys/Projects/qt5/qtbase
> krys at krys-pc:~/Projects/qt5$ env | grep CC
> QT_ACCESSIBILITY=1
> QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
> krys at krys-pc:~/Projects/qt5$ env | grep CXX
> krys at krys-pc:~/Projects/qt5$ env | grep QT
> QT_ACCESSIBILITY=1
> QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
> QT_AUTO_SCREEN_SCALE_FACTOR=0
> krys at krys-pc:~/Projects/qt5$
> 
> 
> Qt was configured with:
> ./configure -developer-build -opensource -nomake examples -release
> -platform linux-g++-32
> 
> Qt configure test run and summary:
> Running configuration tests...
> Checking for gold linker... yes
> Checking for machine tuple... yes
> Checking for valid makespec... yes
> Checking for alloca()... yes
> Checking for target architecture... i386
> Checking for SSE2 instructions... yes
> Checking for SSE3 instructions... yes
> Checking for SSSE3 instructions... yes
> Checking for SSE4.1 instructions... yes
> Checking for SSE4.2 instructions... yes
> Checking for AVX instructions... yes
> Checking for AVX2 instructions... yes
> Checking for AVX512 F instructions... yes
> Checking for AVX512 BW instructions... yes
> Checking for AVX512 CD instructions... yes
> Checking for AVX512 DQ instructions... yes
> Checking for AVX512 ER instructions... yes
> Checking for AVX512 IFMA instructions... yes
> Checking for AVX512 PF instructions... yes
> Checking for AVX512 VBMI instructions... yes
> Checking for AVX512 VL instructions... yes
> Checking for C++14 support... yes
> Checking for C++1z support... yes
> Checking for pkg-config... yes
> Checking for D-Bus >= 1.2... yes
> Checking for new dtags support... yes
> Checking for F16C instructions... yes
> Checking for D-Bus >= 1.2 (host)... yes
> Checking for udev... yes
> Checking for mremap()... yes
> Checking for POSIX fallocate()... yes
> Checking for precompiled header support... yes
> Checking for symbol visibility support... yes
> Checking for -Bsymbolic-functions support... yes
> Checking for STL compatibility... yes
> Checking for zlib... yes
> Checking for clock_gettime()... yes
> Checking for POSIX monotonic clock... yes
> Checking for dlopen()... yes
> Checking for eventfd... yes
> Checking for GLib... no
> Checking for POSIX iconv... yes
> Checking for ICU... yes
> Checking for inotify... yes
> Checking for SysV IPC... yes
> Checking for 64 bit atomics... yes
> Checking for ppoll()... yes
> Checking for slog2... no
> Checking for DoubleConversion... no
> Checking for PCRE2... no
> Checking for O_CLOEXEC... yes
> Checking for working std::atomic for function pointers... yes
> Checking for getaddrinfo()... yes
> Checking for getifaddrs()... yes
> Checking for IPv6 ifname... yes
> Checking for OpenSSL Headers... yes
> Checking for DB2 (IBM)... no
> Checking for InterBase... no
> Checking for MySQL... no
> Checking for OCI (Oracle)... no
> Checking for ODBC... no
> Checking for PostgreSQL... no
> Checking for SQLite (version 2)... no
> Checking for TDS (Sybase)... no
> Checking for XCB >= 1.5 (core)... yes
> Checking for Desktop OpenGL... yes
> Checking for EGL... no
> Checking for evdev... yes
> Checking for FreeType... yes
> Checking for Fontconfig... yes
> Checking for GBM... no
> Checking for KMS... yes
> Checking for libinput... no
> Checking for LinuxFB... yes
> Checking for mtdev... no
> Checking for OpenVG... no
> Checking for default QPA platform... xcb
> Checking for HarfBuzz... no
> Checking for libjpeg... no
> Checking for libpng... yes
> Checking for XCB (secondary)... yes
> Checking for tslib... no
> Checking for X11 prefix... /usr
> Checking for XCB GLX... yes
> Checking for XCB XRender... yes
> Checking for X11 session management... yes
> Checking for XCB Xlib... yes
> Checking for Xinput2... yes
> Checking for XCB XKB >= 1.10... yes
> Checking for xkbcommon-x11 >= 0.4.1... no
> Checking for XKB config root... /usr/share/X11/xkb
> Checking for xkbcommon... no
> Checking for XLib... yes
> Checking for CUPS... no
> Checking for Socket CAN... yes
> Checking for Socket CAN FD... yes
> Checking for Direct3D 12... no
> Checking for SDL2... no
> Checking for Assimp... no
> Checking for Autodesk FBX... no
> Checking for Wayland client library... no
> Checking for Wayland EGL library... no
> Checking for wayland-server... no
> Checking for BlueZ... no
> Checking for sensorfw... no
> Checking for ALSA... yes
> Checking for GStreamer 1.0... no
> Checking for GStreamer 0.10... no
> Checking for Video for Linux... yes
> Checking for OpenAL... no
> Checking for PulseAudio >= 0.9.10... no
> Checking for libresourceqt5... no
> Checking for Gypsy... no
> Checking for WinRT Geolocation API... no
> Checking for ALSA... yes
> Checking for embedded... no
> Checking for PulseAudio >= 0.9.10... yes
> Checking for system ninja... no
> Checking for opus... no
> Checking for libwebp and libwebpdemux... yes
> Done running configuration tests.
> 
> Configure summary:
> 
> Build type: linux-g++-32 (i386, CPU features: <none>)
> Configuration: use_gold_linker sse2 sse3 ssse3 sse4_1 sse4_2 avx avx2
> avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf
> avx512vbmi avx512vl compile_examples enable_new_dtags f16c
> headersclean largefile precompile_header warnings_are_errors
> private_tests shared rpath release c++11 c++14 c++1z concurrent dbus
> mremap reduce_exports reduce_relocations stl
> Build options:
>    Mode ................................... release
>    Building shared libraries .............. yes
>    Using C++ standard ..................... C++1z
>    Using gold linker ...................... yes
>    Using new DTAGS ........................ yes
>    Using precompiled headers .............. yes
>    Using LTCG ............................. no
>    Target compiler supports:
>      SSE .................................. SSE2 SSE3 SSSE3 SSE4.1 SSE4.2
>      AVX .................................. AVX AVX2 F16C
>      AVX512 ............................... F ER CD PF DQ BW VL IFMA VBMI
>    Build parts ............................ libs tests tools
> Qt modules and options:
>    Qt Concurrent .......................... yes
>    Qt D-Bus ............................... yes
>    Qt D-Bus directly linked to libdbus .... yes
>    Qt Gui ................................. yes
>    Qt Network ............................. yes
>    Qt Sql ................................. yes
>    Qt Testlib ............................. yes
>    Qt Widgets ............................. yes
>    Qt Xml ................................. yes
> Support enabled for:
>    Using pkg-config ....................... yes
>    QML debugging .......................... yes
>    udev ................................... yes
>    Using system zlib ...................... yes
> Qt Core:
>    DoubleConversion ....................... yes
>      Using system DoubleConversion ........ no
>    GLib ................................... no
>    iconv .................................. no
>    ICU .................................... yes
>    Logging backends:
>      journald ............................. no
>      syslog ............................... no
>      slog2 ................................ no
>    Using system PCRE2 ..................... no
> Qt Network:
>    getaddrinfo() .......................... yes
>    getifaddrs() ........................... yes
>    IPv6 ifname ............................ yes
>    libproxy ............................... no
>    OpenSSL ................................ yes
>      Qt directly linked to OpenSSL ........ no
>    SCTP ................................... no
>    Use system proxies ..................... yes
> Qt Sql:
>    DB2 (IBM) .............................. no
>    InterBase .............................. no
>    MySql .................................. no
>    OCI (Oracle) ........................... no
>    ODBC ................................... no
>    PostgreSQL ............................. no
>    SQLite2 ................................ no
>    SQLite ................................. yes
>      Using system provided SQLite ......... no
>    TDS (Sybase) ........................... no
> Qt Gui:
>    Accessibility .......................... yes
>    FreeType ............................... yes
>      Using system FreeType ................ yes
>    HarfBuzz ............................... yes
>      Using system HarfBuzz ................ no
>    Fontconfig ............................. yes
>    Image formats:
>      GIF .................................. yes
>      ICO .................................. yes
>      JPEG ................................. yes
>        Using system libjpeg ............... no
>      PNG .................................. yes
>        Using system libpng ................ yes
>    EGL .................................... no
>    OpenVG ................................. no
>    OpenGL:
>      Desktop OpenGL ....................... yes
>      OpenGL ES 2.0 ........................ no
>      OpenGL ES 3.0 ........................ no
>      OpenGL ES 3.1 ........................ no
>    Session Management ..................... yes
> Features used by QPA backends:
>    evdev .................................. yes
>    libinput ............................... no
>    mtdev .................................. no
>    tslib .................................. no
>    xkbcommon-evdev ........................ no
> QPA backends:
>    DirectFB ............................... no
>    EGLFS .................................. no
>    LinuxFB ................................ yes
>    VNC .................................... yes
>    Mir client ............................. no
>    X11:
>      Using system provided XCB libraries .. yes
>      EGL on X11 ........................... no
>      Xinput2 .............................. yes
>      XCB XKB .............................. yes
>      XLib ................................. yes
>      XCB render ........................... yes
>      XCB GLX .............................. yes
>      XCB Xlib ............................. yes
>      Using system-provided xkbcommon ...... no
> Qt Widgets:
>    GTK+ ................................... no
>    Styles ................................. Fusion Windows
> Qt PrintSupport:
>    CUPS ................................... no
> Qt SerialBus:
>    Socket CAN ............................. yes
>    Socket CAN FD .......................... yes
> QtXmlPatterns:
>    XML schema support ..................... yes
> Qt QML:
>    QML interpreter ........................ yes
>    QML network support .................... yes
> Qt Quick:
>    Direct3D 12 ............................ no
>    AnimatedImage item ..................... yes
>    Canvas item ............................ yes
>    Support for Quick Designer ............. yes
>    Flipable item .......................... yes
>    GridView item .......................... yes
>    ListView item .......................... yes
>    Path support ........................... yes
>    PathView item .......................... yes
>    Positioner items ....................... yes
>    ShaderEffect item ...................... yes
>    Sprite item ............................ yes
> Qt Gamepad:
>    SDL2 ................................... no
> Qt 3D:
>    Assimp ................................. yes
>    System Assimp .......................... no
>    Output Qt3D Job traces ................. no
>    Output Qt3D GL traces .................. no
> Qt 3D GeometryLoaders:
>    Autodesk FBX ........................... no
> Qt Wayland Client ........................ no
> Qt Wayland Compositor .................... no
> Qt Bluetooth:
>    BlueZ .................................. no
>    BlueZ Low Energy ....................... no
>    Linux Crypto API ....................... no
> Qt Sensors:
>    sensorfw ............................... no
> Qt Multimedia:
>    ALSA ................................... yes
>    GStreamer 1.0 .......................... no
>    GStreamer 0.10 ......................... no
>    Video for Linux ........................ yes
>    OpenAL ................................. no
>    PulseAudio ............................. no
>    Resource Policy (libresourceqt5) ....... no
>    Windows Audio Services ................. no
>    DirectShow ............................. no
>    Windows Media Foundation ............... no
> Qt Quick Controls 2:
>    Styles ................................. Default Material Universal
> Qt Quick Templates 2:
>    Hover support .......................... yes
> Qt Location:
>    Gypsy GPS Daemon ....................... no
>    WinRT Geolocation API .................. no
> Qt WebEngine:
>    Embedded build ......................... no
>    Optimize for size ...................... no
>    Pepper Plugins ......................... yes
>    Printing and PDF ....................... yes
>    Proprietary Codecs ..................... no
>    Spellchecker ........................... yes
>    WebRTC ................................. yes
>    Using system ninja ..................... no
>    ALSA ................................... yes
>    PulseAudio ............................. yes
>    System libraries:
>      libwebp and libwebpdemux ............. yes
>      Opus ................................. no
>      ffmpeg ............................... no
> 
> Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.
> 
> Qt is now configured for building. Just run 'make'.
> Once everything is built, Qt is installed.
> You should NOT run 'make install'.
> Note that this build cannot be deployed to other machines or devices.
> 
> Prior to reconfiguration, make sure you remove any leftovers from
> the previous build.
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
> 





More information about the Interest mailing list