On 27 August 2017 at 13:25, Christian Gagneraud <chg...@gmail.com> 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.
BTW, at this stage i built successfully quite a few Qt modules: krys@krys-pc:~/Projects/qt5$ find . -name 'libQt*.so' ./qtbase/lib/libQt5OpenGL.so ./qtbase/lib/libQt5Xml.so ./qtbase/lib/libQt5Network.so ./qtbase/lib/libQt5Gui.so ./qtbase/lib/libQt5Test.so ./qtbase/lib/libQt5DBus.so ./qtbase/lib/libQt5Concurrent.so ./qtbase/lib/libQt5Core.so ./qtbase/lib/libQt5PrintSupport.so ./qtbase/lib/libQt5Sql.so ./qtbase/lib/libQt5Widgets.so So my setup cannot be that bad... Chris > > 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@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@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@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@krys-pc:~/Projects/qt5$ env | grep LD > OLDPWD=/home/krys/Projects/qt5/qtbase > krys@krys-pc:~/Projects/qt5$ env | grep CC > QT_ACCESSIBILITY=1 > QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 > krys@krys-pc:~/Projects/qt5$ env | grep CXX > krys@krys-pc:~/Projects/qt5$ env | grep QT > QT_ACCESSIBILITY=1 > QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1 > QT_AUTO_SCREEN_SCALE_FACTOR=0 > krys@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@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest