Undefined Reference to Neon Functions when building Qt6-base from source on Raspberry Pi Zero 2 w
-
I am trying to build qtbase-everywhere-src-6.7.3 from source on my raspberry pi zero 2 w (without cross compilation) But cmake detected undefined reference to many neon-related functions. Since I want to take advantage of the neon capabilities of the pi, Can anyone help me fix this issue? Thanks!
Here is a list of steps that I followed that leads to the error:
First install dependencies
apt install ninja-build libfontconfig1-dev libdbus-1-dev libfreetype6-dev libicu-dev libinput-dev libxkbcommon-dev libsqlite3-dev libssl-dev libpng-dev libjpeg-dev libglib2.0-dev libgles2-mesa-dev libgbm-dev libdrm-dev libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libxcb-xinput-dev
Download source
wget https://download.qt.io/official_releases/qt/6.7/6.7.3/submodules/qtbase-everywhere-src-6.7.3.tar.xz
Build
tar xf qtbase-everywhere-src-6.7.3.tar.xz mkdir qtbase-everywhere-src-6.7.3/build cd qtbase-everywhere-src-6.7.3/build cmake -G Ninja \ -DCMAKE_INSTALL_PREFIX=/opt/Qt/6.7.3-armv8 \ -DCMAKE_BUILD_TYPE=Release \ -DQT_FEATURE_opengles2=ON \ -DQT_FEATURE_opengles3=OFF \ -DQT_FEATURE_kms=ON \ -DFEATURE_optimize_size=ON \ -DQT_AVOID_CMAKE_ARCHIVING_API=ON .. cmake --build . --parallel 2
After leave it to build for several hours, cmake errored out, here is the complete error message:
➜ build cmake --build . --parallel 2 [13/518] Linking CXX shared library lib/libQt6Gui.so.6.7.3 FAILED: lib/libQt6Gui.so.6.7.3 : && /usr/bin/c++ -fPIC -DNDEBUG -Os -Wl,--no-undefined -Wl,--version-script,/home/pi/qtbase-everywhere-src-6.7.3/build/src/gui/Gui.version -Wl,--enable-new-dtags -shared -Wl,-soname,libQt6Gui.so.6 -o lib/libQt6Gui.so.6.7.3 src/gui/CMakeFiles/Gui.dir/Gui_autogen/mocs_compilation.cpp.o src/gui/CMakeFiles/Gui.dir/compat/removed_api.cpp.o src/gui/CMakeFiles/Gui.dir/image/qabstractfileiconengine.cpp.o src/gui/CMakeFiles/Gui.dir/image/qabstractfileiconprovider.cpp.o src/gui/CMakeFiles/Gui.dir/image/qbitmap.cpp.o src/gui/CMakeFiles/Gui.dir/image/qbmphandler.cpp.o src/gui/CMakeFiles/Gui.dir/image/qicon.cpp.o src/gui/CMakeFiles/Gui.dir/image/qiconengine.cpp.o src/gui/CMakeFiles/Gui.dir/image/qiconengineplugin.cpp.o src/gui/CMakeFiles/Gui.dir/image/qiconloader.cpp.o src/gui/CMakeFiles/Gui.dir/image/qimage.cpp.o src/gui/CMakeFiles/Gui.dir/image/qimage_conversions.cpp.o src/gui/CMakeFiles/Gui.dir/image/qimageiohandler.cpp.o src/gui/CMakeFiles/Gui.dir/image/qimagepixmapcleanuphooks.cpp.o src/gui/CMakeFiles/Gui.dir/image/qimagereader.cpp.o src/gui/CMakeFiles/Gui.dir/image/qimagereaderwriterhelpers.cpp.o src/gui/CMakeFiles/Gui.dir/image/qimagewriter.cpp.o src/gui/CMakeFiles/Gui.dir/image/qpaintengine_pic.cpp.o src/gui/CMakeFiles/Gui.dir/image/qpicture.cpp.o src/gui/CMakeFiles/Gui.dir/image/qpixmap.cpp.o src/gui/CMakeFiles/Gui.dir/image/qpixmap_blitter.cpp.o src/gui/CMakeFiles/Gui.dir/image/qpixmap_raster.cpp.o src/gui/CMakeFiles/Gui.dir/image/qpixmapcache.cpp.o src/gui/CMakeFiles/Gui.dir/image/qplatformpixmap.cpp.o src/gui/CMakeFiles/Gui.dir/image/qppmhandler.cpp.o src/gui/CMakeFiles/Gui.dir/image/qxbmhandler.cpp.o src/gui/CMakeFiles/Gui.dir/image/qxpmhandler.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qclipboard.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qcursor.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qeventpoint.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qevent.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qgenericplugin.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qgenericpluginfactory.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qguiapplication.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qguivariant.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qhighdpiscaling.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qinputdevice.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qinputdevicemanager.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qinputmethod.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qinternalmimedata.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qkeymapper.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qoffscreensurface.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qpaintdevicewindow.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qpalette.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qpixelformat.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformclipboard.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformcursor.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformdialoghelper.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformgraphicsbuffer.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformgraphicsbufferhelper.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatforminputcontext.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatforminputcontextfactory.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatforminputcontextplugin.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformintegration.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformintegrationfactory.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformintegrationplugin.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformkeymapper.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformmenu.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformnativeinterface.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformoffscreensurface.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformscreen.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformservices.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformsessionmanager.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformsharedgraphicscache.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformsurface.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformsystemtrayicon.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformtheme.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformthemefactory.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformthemeplugin.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformwindow.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qpointingdevice.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qrasterwindow.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qscreen.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qsessionmanager.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qstylehints.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qsurface.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qsurfaceformat.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qtestsupport_gui.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qwindow.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qwindowsysteminterface.cpp.o src/gui/CMakeFiles/Gui.dir/math3d/qgenericmatrix.cpp.o src/gui/CMakeFiles/Gui.dir/math3d/qmatrix4x4.cpp.o src/gui/CMakeFiles/Gui.dir/math3d/qquaternion.cpp.o src/gui/CMakeFiles/Gui.dir/math3d/qvectornd.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qbackingstore.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qbackingstoredefaultcompositor.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qbackingstorerhisupport.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qbezier.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qblendfunctions.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qblittable.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qbrush.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qcolor.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qcolorspace.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qcolortransform.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qcolortrclut.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qcompositionfunctions.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qcosmeticstroker.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qemulationpaintengine.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qgrayraster.c.o src/gui/CMakeFiles/Gui.dir/painting/qicc.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qimagescale.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qmemrotate.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qoutlinemapper.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpagedpaintdevice.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpagelayout.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpageranges.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpagesize.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpaintdevice.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpaintengine.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpaintengine_blitter.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpaintengine_raster.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpaintengineex.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpainter.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpainterpath.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpathclipper.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpathsimplifier.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpdf.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpdfwriter.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpen.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpixellayout.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qplatformbackingstore.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qpolygon.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qrasterizer.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qregion.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qstroker.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qtextureglyphcache.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qtransform.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qtriangulatingstroker.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qtriangulator.cpp.o src/gui/CMakeFiles/Gui.dir/rhi/qrhi.cpp.o src/gui/CMakeFiles/Gui.dir/rhi/qrhinull.cpp.o src/gui/CMakeFiles/Gui.dir/rhi/qshader.cpp.o src/gui/CMakeFiles/Gui.dir/rhi/qshaderdescription.cpp.o src/gui/CMakeFiles/Gui.dir/text/qabstracttextdocumentlayout.cpp.o src/gui/CMakeFiles/Gui.dir/text/qdistancefield.cpp.o src/gui/CMakeFiles/Gui.dir/text/qfont.cpp.o src/gui/CMakeFiles/Gui.dir/text/qfontdatabase.cpp.o src/gui/CMakeFiles/Gui.dir/text/qfontengine.cpp.o src/gui/CMakeFiles/Gui.dir/text/qfontengineglyphcache.cpp.o src/gui/CMakeFiles/Gui.dir/text/qfontmetrics.cpp.o src/gui/CMakeFiles/Gui.dir/text/qfontsubset.cpp.o src/gui/CMakeFiles/Gui.dir/text/qfragmentmap.cpp.o src/gui/CMakeFiles/Gui.dir/text/qglyphrun.cpp.o src/gui/CMakeFiles/Gui.dir/text/qinputcontrol.cpp.o src/gui/CMakeFiles/Gui.dir/text/qplatformfontdatabase.cpp.o src/gui/CMakeFiles/Gui.dir/text/qrawfont.cpp.o src/gui/CMakeFiles/Gui.dir/text/qstatictext.cpp.o src/gui/CMakeFiles/Gui.dir/text/qsyntaxhighlighter.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextcursor.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextdocument.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextdocument_p.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextdocumentfragment.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextdocumentlayout.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextdocumentwriter.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextengine.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextformat.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtexthtmlparser.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextimagehandler.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextlayout.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextlist.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextobject.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextoption.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtexttable.cpp.o src/gui/CMakeFiles/Gui.dir/util/qabstractlayoutstyleinfo.cpp.o src/gui/CMakeFiles/Gui.dir/util/qastchandler.cpp.o src/gui/CMakeFiles/Gui.dir/util/qdesktopservices.cpp.o src/gui/CMakeFiles/Gui.dir/util/qgridlayoutengine.cpp.o src/gui/CMakeFiles/Gui.dir/util/qktxhandler.cpp.o src/gui/CMakeFiles/Gui.dir/util/qlayoutpolicy.cpp.o src/gui/CMakeFiles/Gui.dir/util/qpkmhandler.cpp.o src/gui/CMakeFiles/Gui.dir/util/qtexturefiledata.cpp.o src/gui/CMakeFiles/Gui.dir/util/qtexturefilereader.cpp.o src/gui/CMakeFiles/Gui.dir/util/qvalidator.cpp.o src/gui/CMakeFiles/Gui.dir/.qt/rcc/qrc_qpdf.cpp.o src/gui/CMakeFiles/Gui.dir/.qt/rcc/qrc_gui_shaders.cpp.o src/gui/CMakeFiles/Gui.dir/itemmodels/qstandarditemmodel.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qopenglcontext.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformopenglcontext.cpp.o src/gui/CMakeFiles/Gui.dir/opengl/qopengl.cpp.o src/gui/CMakeFiles/Gui.dir/opengl/qopenglfunctions.cpp.o src/gui/CMakeFiles/Gui.dir/opengl/qopenglprogrambinarycache.cpp.o src/gui/CMakeFiles/Gui.dir/rhi/qrhigles2.cpp.o src/gui/CMakeFiles/Gui.dir/animation/qguivariantanimation.cpp.o src/gui/CMakeFiles/Gui.dir/opengl/platform/egl/qeglconvenience.cpp.o src/gui/CMakeFiles/Gui.dir/opengl/platform/egl/qeglstreamconvenience.cpp.o src/gui/CMakeFiles/Gui.dir/accessible/qaccessible.cpp.o src/gui/CMakeFiles/Gui.dir/accessible/qaccessiblebridge.cpp.o src/gui/CMakeFiles/Gui.dir/accessible/qaccessiblebridgeutils.cpp.o src/gui/CMakeFiles/Gui.dir/accessible/qaccessiblecache.cpp.o src/gui/CMakeFiles/Gui.dir/accessible/qaccessibleobject.cpp.o src/gui/CMakeFiles/Gui.dir/accessible/qaccessibleplugin.cpp.o src/gui/CMakeFiles/Gui.dir/accessible/qplatformaccessibility.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qaction.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qactiongroup.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qdnd.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qdrag.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qplatformdrag.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qshapedpixmapdndwindow.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qsimpledrag.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qkeysequence.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qshortcut.cpp.o src/gui/CMakeFiles/Gui.dir/kernel/qshortcutmap.cpp.o src/gui/CMakeFiles/Gui.dir/image/qmovie.cpp.o src/gui/CMakeFiles/Gui.dir/image/qpnghandler.cpp.o src/gui/CMakeFiles/Gui.dir/text/qharfbuzzng.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextodfwriter.cpp.o src/gui/CMakeFiles/Gui.dir/text/qtextmarkdownimporter.cpp.o src/gui/CMakeFiles/Gui.dir/__/3rdparty/md4c/md4c.c.o src/gui/CMakeFiles/Gui.dir/text/qtextmarkdownwriter.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qcssutil.cpp.o src/gui/CMakeFiles/Gui.dir/text/qcssparser.cpp.o src/gui/CMakeFiles/Gui.dir/text/freetype/qfontengine_ft.cpp.o src/gui/CMakeFiles/Gui.dir/text/freetype/qfreetypefontdatabase.cpp.o src/gui/CMakeFiles/Gui.dir/text/unix/qfontconfigdatabase.cpp.o src/gui/CMakeFiles/Gui.dir/text/unix/qfontenginemultifontconfig.cpp.o src/gui/CMakeFiles/Gui.dir/util/qundostack.cpp.o src/gui/CMakeFiles/Gui.dir/util/qundogroup.cpp.o src/gui/CMakeFiles/Gui.dir/opengl/platform/egl/qeglpbuffer.cpp.o src/gui/CMakeFiles/Gui.dir/opengl/platform/egl/qeglplatformcontext.cpp.o src/gui/CMakeFiles/Gui.dir/itemmodels/qfileinfogatherer.cpp.o src/gui/CMakeFiles/Gui.dir/itemmodels/qfilesystemmodel.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/qunixnativeinterface.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/qgenericunixeventdispatcher.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/qunixeventdispatcher.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/qeventdispatcher_glib.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/qgenericunixservices.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/qgenericunixthemes.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbusmenu/qdbusmenuadaptor.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbusmenu/qdbusmenubar.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbusmenu/qdbusmenuconnection.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbusmenu/qdbusmenuregistrarproxy.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbusmenu/qdbusmenutypes.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbusmenu/qdbusplatformmenu.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbustray/qdbustrayicon.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbustray/qdbustraytypes.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbustray/qstatusnotifieritemadaptor.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/dbustray/qxdgnotificationproxy.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/qxkbcommon.cpp.o src/gui/CMakeFiles/Gui.dir/platform/unix/qxkbcommon_3rdparty.cpp.o src/gui/CMakeFiles/Gui.dir/painting/qdrawhelper.cpp.o src/gui/CMakeFiles/Gui.dir/util/qedidparser.cpp.o -Wl,-rpath,/home/pi/qtbase-everywhere-src-6.7.3/build/lib: /usr/lib/arm-linux-gnueabihf/libGLESv2.so /usr/lib/arm-linux-gnueabihf/libEGL.so /usr/lib/arm-linux-gnueabihf/libfontconfig.so -ldl /usr/lib/arm-linux-gnueabihf/libglib-2.0.so lib/libQt6DBus.so.6.7.3 /usr/lib/arm-linux-gnueabihf/libxkbcommon.so /usr/lib/arm-linux-gnueabihf/libEGL.so /usr/lib/arm-linux-gnueabihf/libpng.so lib/libQt6BundledHarfbuzz.a /usr/lib/arm-linux-gnueabihf/libfreetype.so /usr/lib/arm-linux-gnueabihf/libz.so /usr/lib/arm-linux-gnueabihf/libgthread-2.0.so lib/libQt6Core.so.6.7.3 -lpthread -latomic && : /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/image/qimage_conversions.cpp.o: in function `convert_generic(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)': qimage_conversions.cpp:(.text+0x3110): undefined reference to `storeRGB32FromARGB32PM_neon(unsigned char*, unsigned int const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/image/qimage_conversions.cpp.o: in function `convert_generic_inplace(QImageData*, QImage::Format, QFlags<Qt::ImageConversionFlag>)': qimage_conversions.cpp:(.text+0x3744): undefined reference to `storeRGB32FromARGB32PM_neon(unsigned char*, unsigned int const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/image/qimage_conversions.cpp.o: in function `_GLOBAL__sub_I_qimage_conversions.cpp': qimage_conversions.cpp:(.text.startup+0x67c): undefined reference to `convert_RGB888_to_RGB32_neon(QImageData*, QImageData const*, QFlags<Qt::ImageConversionFlag>)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qdrawhelper.cpp.o: in function `void qt_rectfill<unsigned int>(unsigned int*, unsigned int, int, int, int, int, int)': qdrawhelper.cpp:(.text+0x1684): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text+0x169c): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qdrawhelper.cpp.o: in function `qt_fetch_linear_gradient(unsigned int*, Operator const*, QSpanData const*, int, int, int)': qdrawhelper.cpp:(.text+0x17d0): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qdrawhelper.cpp.o: in function `void qt_bitmapblit_template<unsigned int>(QRasterBuffer*, int, int, unsigned int, unsigned char const*, int, int, int)': qdrawhelper.cpp:(.text+0x19e4): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text+0x1a30): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qdrawhelper.cpp.o:qdrawhelper.cpp:(.text+0x1a78): more undefined references to `qt_memfill32(unsigned int*, unsigned int, int)' follow /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qdrawhelper.cpp.o: in function `_GLOBAL__sub_I_qdrawhelper.cpp': qdrawhelper.cpp:(.text.startup+0x1e4): undefined reference to `comp_func_solid_SourceOver_neon(unsigned int*, int, unsigned int, unsigned int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x1e8): undefined reference to `storeRGBXFromARGB32PM_neon(unsigned char*, unsigned int const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x1ec): undefined reference to `qt_blend_rgb32_on_rgb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x1f0): undefined reference to `qt_blend_argb32_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x1f8): undefined reference to `qt_blend_argb32_on_argb32_scanline_neon(unsigned int*, unsigned int const*, int, unsigned int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x200): undefined reference to `comp_func_Plus_neon(unsigned int*, unsigned int const*, int, unsigned int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x204): undefined reference to `fetchARGB32ToARGB32PM_neon(unsigned int*, unsigned char const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x20c): undefined reference to `qt_fetch_radial_gradient_neon(unsigned int*, Operator const*, QSpanData const*, int, int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x210): undefined reference to `qt_fetchUntransformed_888_neon(unsigned int*, Operator const*, QSpanData const*, int, int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x218): undefined reference to `convertARGB32ToARGB32PM_neon(unsigned int*, int, QList<unsigned int> const*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x21c): undefined reference to `storeARGB32FromARGB32PM_neon(unsigned char*, unsigned int const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x220): undefined reference to `fetchARGB32ToRGBA64PM_neon(QRgba64*, unsigned char const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x224): undefined reference to `convertARGB32ToRGBA64PM_neon(QRgba64*, unsigned int const*, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x228): undefined reference to `fetchRGBA8888ToARGB32PM_neon(unsigned int*, unsigned char const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x22c): undefined reference to `convertRGBA8888ToARGB32PM_neon(unsigned int*, int, QList<unsigned int> const*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x230): undefined reference to `storeRGBA8888FromARGB32PM_neon(unsigned char*, unsigned int const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x234): undefined reference to `fetchRGBA8888ToRGBA64PM_neon(QRgba64*, unsigned char const*, int, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x238): undefined reference to `convertRGBA8888ToRGBA64PM_neon(QRgba64*, unsigned int const*, int, QList<unsigned int> const*, QDitherInfo*)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x23c): undefined reference to `qt_blend_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x240): undefined reference to `qt_blend_rgb16_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x244): undefined reference to `qt_blend_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x24c): undefined reference to `qt_scale_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x250): undefined reference to `qt_scale_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x258): undefined reference to `qt_transform_image_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransform const&, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x25c): undefined reference to `qt_transform_image_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, QRectF const&, QRectF const&, QRect const&, QTransform const&, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x260): undefined reference to `qt_alphamapblit_quint16_neon(QRasterBuffer*, int, int, QRgba64 const&, unsigned char const*, int, int, int, QClipData const*, bool)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x264): undefined reference to `qt_memrotate90_16_neon(unsigned char const*, int, int, int, unsigned char*, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x268): undefined reference to `qt_destFetchRGB16_neon(unsigned int*, QRasterBuffer*, int, int, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x26c): undefined reference to `qt_destStoreRGB16_neon(QRasterBuffer*, int, int, unsigned int const*, int)' /usr/bin/ld: qdrawhelper.cpp:(.text.startup+0x274): undefined reference to `qt_memrotate270_16_neon(unsigned char const*, int, int, int, unsigned char*, int)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/image/qimage.cpp.o: in function `QImage::fill(unsigned int)': qimage.cpp:(.text+0x4ed8): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: qimage.cpp:(.text+0x4f08): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qcompositionfunctions.cpp.o: in function `rasterop_solid_NotSource(unsigned int*, int, unsigned int, unsigned int)': qcompositionfunctions.cpp:(.text+0x1868): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qcompositionfunctions.cpp.o: in function `void comp_func_Clear_template<Argb32OperationsC>(Argb32OperationsC::Type*, int, unsigned int)': qcompositionfunctions.cpp:(.text+0x1888): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qcompositionfunctions.cpp.o: in function `comp_func_solid_Source(unsigned int*, int, unsigned int, unsigned int)': qcompositionfunctions.cpp:(.text+0x18ec): undefined reference to `qt_memfill32(unsigned int*, unsigned int, int)' /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qcompositionfunctions.cpp.o:qcompositionfunctions.cpp:(.text+0x1964): more undefined references to `qt_memfill32(unsigned int*, unsigned int, int)' follow /usr/bin/ld: src/gui/CMakeFiles/Gui.dir/painting/qimagescale.cpp.o: in function `qSmoothScaleImage(QImage const&, int, int)': qimagescale.cpp:(.text+0x2db8): undefined reference to `void qt_qimageScaleAARGBA_up_x_down_y_neon<false>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)' /usr/bin/ld: qimagescale.cpp:(.text+0x2dd4): undefined reference to `void qt_qimageScaleAARGBA_down_x_up_y_neon<false>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)' /usr/bin/ld: qimagescale.cpp:(.text+0x2ddc): undefined reference to `void qt_qimageScaleAARGBA_down_xy_neon<false>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)' /usr/bin/ld: qimagescale.cpp:(.text+0x2e34): undefined reference to `void qt_qimageScaleAARGBA_up_x_down_y_neon<true>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)' /usr/bin/ld: qimagescale.cpp:(.text+0x2e50): undefined reference to `void qt_qimageScaleAARGBA_down_x_up_y_neon<true>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)' /usr/bin/ld: qimagescale.cpp:(.text+0x2e58): undefined reference to `void qt_qimageScaleAARGBA_down_xy_neon<true>(QImageScale::QImageScaleInfo*, unsigned int*, int, int, int, int)' collect2: error: ld returned 1 exit status [14/518] Building CXX object src/plugins/tls/openssl/CMakeFiles/QTlsBackendOpenSSLPlugin.dir/qsslsocket_openssl_symbols.cpp.o ninja: build stopped: subcommand failed.
-
@Evan_muhaha said in Undefined Reference to Neon Functions when building Qt6-base from source on Raspberry Pi Zero 2 w:
tar xf qtbase-everywhere-src-6.7.3.tar.xz
mkdir qtbase-everywhere-src-6.7.3/build
cd qtbase-everywhere-src-6.7.3/buildcmake -G Ninja \
Thisis not how Qt is built. You first need to call configure. Follow https://wiki.qt.io/Cross-Compile_Qt_6_for_Raspberry_Pi
-
Hi @jsulm, I'm not quite familiar with the build process since I'm quite new to this. I know this link is a Cross Compile tutorial for Raspberry pi 4B, what build configuration should I use instead for the Pi zero 2 w when calling configure? (with native build, considering the pi zero 2 is armv8, cortex-a53, and neon support)? thank you!