How to build Qt on system without a GUI?
-
Has anyone managed to install Qt toolchain on Ubuntu that was synchronized with RPi running Buster ? If it's the case I will immediately buy new RPi4 and install Buster on it.
-
Finally I've tried to build Qt toolchain for RPi4 using this tutorial:
Cross-Compile QT 5.12.6 / Raspberry Pi 4
Once more ... doesn't work.
Here is what I get while launching configure:make[2]: Leaving directory '/home/pavel/qtbase/src/widgets' make[1]: Leaving directory '/home/pavel/qtbase/src' Makefile:50: recipe for target 'sub-src-make_first' failed make: *** [sub-src-make_first] Error 2
Any suggestions ?
-
Finally I've tried to build Qt toolchain for RPi4 using this tutorial:
Cross-Compile QT 5.12.6 / Raspberry Pi 4
Once more ... doesn't work.
Here is what I get while launching configure:make[2]: Leaving directory '/home/pavel/qtbase/src/widgets' make[1]: Leaving directory '/home/pavel/qtbase/src' Makefile:50: recipe for target 'sub-src-make_first' failed make: *** [sub-src-make_first] Error 2
Any suggestions ?
@Pavel_47 said in How to build Qt on system without a GUI?:
Any suggestions ?
You did not post the actual errors - those should be before these lines.
Also, did you call configure from a clean state? -
The log is quite huge, but concerning just before lines, here it is:
rm -f libQt5Widgets.so.5.12.6 libQt5Widgets.so libQt5Widgets.so.5 libQt5Widgets.so.5.12 /home/pavel/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/home/pavel/raspi/sysroot/ -Wl,--no-undefined -Wl,--version-script,QtWidgets.version -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN -Wl,-rpath-link,/home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/pavel/raspi/sysroot/lib/arm-linux-gnueabihf -shared -Wl,-soname,libQt5Widgets.so.5 -o libQt5Widgets.so.5.12.6 .obj/qaction.o .obj/qactiongroup.o .obj/qapplication.o .obj/qwidgetbackingstore.o .obj/qboxlayout.o .obj/qgridlayout.o .obj/qlayout.o .obj/qlayoutengine.o .obj/qlayoutitem.o .obj/qshortcut.o .obj/qsizepolicy.o .obj/qstackedlayout.o .obj/qtooltip.o .obj/qwidget.o .obj/qwidgetaction.o .obj/qgesture.o .obj/qstandardgestures.o .obj/qgesturerecognizer.o .obj/qgesturemanager.o .obj/qdesktopwidget.o .obj/qwidgetsvariant.o .obj/qwidgetwindow.o .obj/qwindowcontainer.o .obj/qtestsupport_widgets.o .obj/qopenglwidget.o .obj/qformlayout.o .obj/qwhatsthis.o .obj/qdrawutil.o .obj/qstyle.o .obj/qstylefactory.o .obj/qstyleoption.o .obj/qstyleplugin.o .obj/qstylehelper.o .obj/qcommonstyle.o .obj/qproxystyle.o .obj/qstylepainter.o .obj/qstylesheetstyle.o .obj/qstylesheetstyle_default.o .obj/qpixmapstyle.o .obj/qstyleanimation.o .obj/qwindowsstyle.o .obj/qfusionstyle.o .obj/qframe.o .obj/qabstractscrollarea.o .obj/qfocusframe.o .obj/qwidgetanimator.o .obj/qabstractbutton.o .obj/qabstractslider.o .obj/qbuttongroup.o .obj/qcalendarwidget.o .obj/qcheckbox.o .obj/qcombobox.o .obj/qcommandlinkbutton.o .obj/qdatetimeedit.o .obj/qdial.o .obj/qdockwidget.o .obj/qdockarealayout.o .obj/qeffects.o .obj/qfontcombobox.o .obj/qgroupbox.o .obj/qkeysequenceedit.o .obj/qlabel.o .obj/qlcdnumber.o .obj/qlineedit_p.o .obj/qlineedit.o .obj/qwidgetlinecontrol.o .obj/qmainwindow.o .obj/qmainwindowlayout.o .obj/qmdiarea.o .obj/qmdisubwindow.o .obj/qmenu.o .obj/qmenubar.o .obj/qprogressbar.o .obj/qpushbutton.o .obj/qradiobutton.o .obj/qwidgetresizehandler.o .obj/qdialogbuttonbox.o .obj/qrubberband.o .obj/qscrollarea.o .obj/qscrollbar.o .obj/qsizegrip.o .obj/qslider.o .obj/qabstractspinbox.o .obj/qspinbox.o .obj/qsplashscreen.o .obj/qsplitter.o .obj/qstackedwidget.o .obj/qstatusbar.o .obj/qtabbar.o .obj/qplaintextedit.o .obj/qtextedit.o .obj/qtextbrowser.o .obj/qtabwidget.o .obj/qtoolbar.o .obj/qtoolbarlayout.o .obj/qtoolbararealayout.o .obj/qtoolbarseparator.o .obj/qtoolbox.o .obj/qtoolbutton.o .obj/qtoolbarextension.o .obj/qwidgettextcontrol.o .obj/qcolordialog.o .obj/qdialog.o .obj/qerrormessage.o .obj/qfiledialog.o .obj/qsidebar.o .obj/qfilesystemmodel.o .obj/qfileinfogatherer.o .obj/qfontdialog.o .obj/qinputdialog.o .obj/qmessagebox.o .obj/qprogressdialog.o .obj/qwizard.o .obj/qaccessiblewidget.o .obj/qaccessiblewidgetfactory.o .obj/complexwidgets.o .obj/qaccessiblemenu.o .obj/qaccessiblewidgets.o .obj/rangecontrols.o .obj/simplewidgets.o .obj/itemviews.o .obj/qabstractitemview.o .obj/qheaderview.o .obj/qbsptree.o .obj/qabstractitemdelegate.o .obj/qitemdelegate.o .obj/qitemeditorfactory.o .obj/qstyleditemdelegate.o .obj/qcolumnview.o .obj/qcolumnviewgrip.o .obj/qdatawidgetmapper.o .obj/qdirmodel.o .obj/qlistview.o .obj/qlistwidget.o .obj/qtableview.o .obj/qtablewidget.o .obj/qtreeview.o .obj/qtreewidget.o .obj/qtreewidgetitemiterator.o .obj/qfileiconprovider.o .obj/qgraphicsgridlayout.o .obj/qgraphicsitem.o .obj/qgraphicsitemanimation.o .obj/qgraphicslayout.o .obj/qgraphicslayout_p.o .obj/qgraphicslayoutitem.o .obj/qgraphicslinearlayout.o .obj/qgraphicsproxywidget.o .obj/qgraphicsscene.o .obj/qgraphicsscene_bsp.o .obj/qgraphicsscenebsptreeindex.o .obj/qgraphicssceneevent.o .obj/qgraphicssceneindex.o .obj/qgraphicsscenelinearindex.o .obj/qgraphicstransform.o .obj/qgraphicsview.o .obj/qgraphicswidget.o .obj/qgraphicswidget_p.o .obj/qgraphicslayoutstyleinfo.o .obj/qgraphicsgridlayoutengine.o .obj/qsimplex_p.o .obj/qgraphicsanchorlayout_p.o .obj/qgraphicsanchorlayout.o .obj/qsystemtrayicon.o .obj/qcolormap.o .obj/qcompleter.o .obj/qscroller.o .obj/qscrollerproperties.o .obj/qflickgesture.o .obj/qundostack.o .obj/qundogroup.o .obj/qundoview.o .obj/qsystemtrayicon_x11.o .obj/qguistatemachine.o .obj/qkeyeventtransition.o .obj/qmouseeventtransition.o .obj/qbasickeyeventtransition.o .obj/qbasicmouseeventtransition.o .obj/qgraphicseffect.o .obj/qpixmapfilter.o .obj/qrc_qstyle.o .obj/qrc_qmessagebox.o .obj/moc_qpixmapstyle_p.o /home/pavel/qtbase/lib/libQt5Gui.so /home/pavel/qtbase/lib/libQt5Core.so -lpthread /home/pavel/raspi/sysroot//usr/lib/arm-linux-gnueabihf/libGLESv2.so ln -s libQt5Widgets.so.5.12.6 libQt5Widgets.so ln -s libQt5Widgets.so.5.12.6 libQt5Widgets.so.5 ln -s libQt5Widgets.so.5.12.6 libQt5Widgets.so.5.12 rm -f ../../lib/libQt5Widgets.so.5.12.6 mv -f libQt5Widgets.so.5.12.6 ../../lib/libQt5Widgets.so.5.12.6 rm -f ../../lib/libQt5Widgets.so rm -f ../../lib/libQt5Widgets.so.5 rm -f ../../lib/libQt5Widgets.so.5.12 mv -f libQt5Widgets.so ../../lib/libQt5Widgets.so mv -f libQt5Widgets.so.5 ../../lib/libQt5Widgets.so.5 mv -f libQt5Widgets.so.5.12 ../../lib/libQt5Widgets.so.5.12 make[2]: Leaving directory '/home/pavel/qtbase/src/widgets' make[1]: Leaving directory '/home/pavel/qtbase/src' Makefile:50: recipe for target 'sub-src-make_first' failed make: *** [sub-src-make_first] Error 2 Concerning clean state ... probably not. Last time I tried with RPi3 three months ago and I don't remember the state of the system when I abandoned my attempts wit RPi3. But I'll try once more after cleaning
-
Hear is after clean and launching make:
constant_mappings.cpp: In function ‘quint64 spiStatesFromQState(QAccessible::State)’: constant_mappings.cpp:82:35: error: ‘ATSPI_STATE_READ_ONLY’ was not declared in this scope setSpiStateBit(&spiState, ATSPI_STATE_READ_ONLY); ^ Makefile:2911: recipe for target '.obj/constant_mappings.o' failed make[3]: *** [.obj/constant_mappings.o] Error 1 make[3]: Leaving directory '/home/pavel/qtbase/src/platformsupport/linuxaccessibility' Makefile:358: recipe for target 'sub-linuxaccessibility-make_first' failed make[2]: *** [sub-linuxaccessibility-make_first] Error 2 make[2]: Leaving directory '/home/pavel/qtbase/src/platformsupport' Makefile:585: recipe for target 'sub-platformsupport-make_first' failed make[1]: *** [sub-platformsupport-make_first] Error 2 make[1]: Leaving directory '/home/pavel/qtbase/src' Makefile:50: recipe for target 'sub-src-make_first' failed make: *** [sub-src-make_first] Error 2
-
Hear is after clean and launching make:
constant_mappings.cpp: In function ‘quint64 spiStatesFromQState(QAccessible::State)’: constant_mappings.cpp:82:35: error: ‘ATSPI_STATE_READ_ONLY’ was not declared in this scope setSpiStateBit(&spiState, ATSPI_STATE_READ_ONLY); ^ Makefile:2911: recipe for target '.obj/constant_mappings.o' failed make[3]: *** [.obj/constant_mappings.o] Error 1 make[3]: Leaving directory '/home/pavel/qtbase/src/platformsupport/linuxaccessibility' Makefile:358: recipe for target 'sub-linuxaccessibility-make_first' failed make[2]: *** [sub-linuxaccessibility-make_first] Error 2 make[2]: Leaving directory '/home/pavel/qtbase/src/platformsupport' Makefile:585: recipe for target 'sub-platformsupport-make_first' failed make[1]: *** [sub-platformsupport-make_first] Error 2 make[1]: Leaving directory '/home/pavel/qtbase/src' Makefile:50: recipe for target 'sub-src-make_first' failed make: *** [sub-src-make_first] Error 2
@Pavel_47 said in How to build Qt on system without a GUI?:
ATSPI_STATE_READ_ONLY
This belongs to libatspi. Do you have it and its dev package in your sysroot for RPi?
-
@Pavel_47 said in How to build Qt on system without a GUI?:
libatspi
I've tried to install libatspi and libatspi-dev, but Ubuntu updater couldn't locate these packages. Should they come from synchronization with RPi ?
@Pavel_47 said in How to build Qt on system without a GUI?:
Should they come from synchronization with RPi ?
Yes
-
The execution of one of the 3 resynchronizations (rsync -avz pi@yourpi:/usr/lib sysroot/usr to be exact) resulted in the following error:
sent 1,332,333 bytes received 119,470,015 bytes 1,320,244.24 bytes/sec
total size is 3,341,241,457 speedup is 27.66
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1668) [generator=3.1.2]It’s probably related to the cause of make failure. I went up the log of synchronization, displayed on the screen but I did not notice any error.
Any suggestions ?
-
My Ubuntu 18.04 has libatspi2.0-0 and libatspi2.0-0-dev
You have them in /usr/lib/ ?What is running on your RPi?
Raspbian 10 (buster)@Pavel_47 said in How to build Qt on system without a GUI?:
You have them in /usr/lib/ ?
In /usr/lib/x86_64-linux-gnu/libatspi.so.0
And Ubuntu provides the packages I mentioned above.
Debian should provide them as well (Raspbian is based on Debian), so you should be able to install them."Any suggestions ?" - well, something went wrong, there should be something in the log.
-
@jsulm said in How to build Qt on system without a GUI?:
Debian should provide them as well (Raspbian is based on Debian), so you should be able to install them.
"Any suggestions ?" - well, something went wrong, there should be something in the log.Yes I also have it on Ubuntu on the same location.
I also checked on Raspberry: it is there - in /user/lib/arm-linux-gnueabihf
But I didn't find it on Ubuntu - in ~/raspi/sysroot/usr/lib/arm-linux-gnueabihf, the folder which was synchronized with RPi.
Concerning your suggestion to look over log ... I didn't find any log file on rsync instruction. Nevertheless I look through over whole display buffer after erroneuous rsync execution (that didn't contain whole log !!!) and didn't find any error. -
Hi,
If you can find the libraires/headers in your device root file system then using scp might be faster in your case to ensure you copy the files back to your machine.
-
@SGaist said in How to build Qt on system without a GUI?:
Hi,
If you can find the libraires/headers in your device root file system then using scp might be faster in your case to ensure you copy the files back to your machine.
Copied missed libraries from RPi to Ubuntu and rerun build.
Here is as it fails this time:/home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libpthread.a(pthread_create.o): In function
__pthread_create_2_1': /build/glibc-FUvrFr/glibc-2.28/nptl/pthread_create.c:697: undefined reference to
_dl_stack_flags'
/home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libpthread.a(unwind.o): In functionunwind_stop': /build/glibc-FUvrFr/glibc-2.28/nptl/unwind.c:72: undefined reference to
__pointer_chk_guard_local'
/home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libpthread.a(nptl-init.o): In function__pthread_initialize_minimal_internal': /build/glibc-FUvrFr/glibc-2.28/nptl/nptl-init.c:434: undefined reference to
_dl_pagesize'
/build/glibc-FUvrFr/glibc-2.28/nptl/nptl-init.c:434: undefined reference to_dl_init_static_tls' /build/glibc-FUvrFr/glibc-2.28/nptl/nptl-init.c:434: undefined reference to
_dl_wait_lookup_done'
/home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libpthread.a(nptl-init.o): In function__pthread_get_minstack': /build/glibc-FUvrFr/glibc-2.28/nptl/nptl-init.c:443: undefined reference to
_dl_pagesize'
collect2: error: ld returned 1 exit status
Makefile:1155: recipe for target '../../lib/libQt5Core.so.5.12.6' failed
make[2]: *** [../../lib/libQt5Core.so.5.12.6] Error 1
make[2]: Leaving directory '/home/pavel/qtbase/src/corelib'
Makefile:198: recipe for target 'sub-corelib-make_first' failed
make[1]: *** [sub-corelib-make_first] Error 2
make[1]: Leaving directory '/home/pavel/qtbase/src'
Makefile:50: recipe for target 'sub-src-make_first' failed
make: *** [sub-src-make_first] Error 2