Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Issues encountered when cross-compiling ARM64 qmake on the x86 platform.
QtWS25 Last Chance

Issues encountered when cross-compiling ARM64 qmake on the x86 platform.

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
1 Posts 1 Posters 57 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    alex yan
    wrote on last edited by
    #1

    Hello,
    I want to build a qt5.12.4 for arm64(embedded system) in ubuntu18.04. when I excute "make -j3", error logs are below:
    .obj/qimage.o: In function QImage::fill(unsigned int)': qimage.cpp:(.text+0x57e8): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    qimage.cpp:(.text+0x58f0): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)' qimage.cpp:(.text+0x5abb): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    qimage.cpp:(.text+0x5ada): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)' .obj/qdrawhelper.o: In function void qt_bitmapblit_template<unsigned int>(QRasterBuffer*, int, int, unsigned int, unsigned char const*, int, int, int)':
    qdrawhelper.cpp:(.text+0x11de6): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' qdrawhelper.cpp:(.text+0x11e67): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    qdrawhelper.cpp:(.text+0x11ea3): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' qdrawhelper.cpp:(.text+0x11f0b): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    qdrawhelper.cpp:(.text+0x11f4c): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o:qdrawhelper.cpp:(.text+0x11f9b): more undefined references to qt_memfill32(unsigned int*, unsigned int, int)' follow
    .obj/qdrawhelper.o: In function qt_bitmapblit_quint16(QRasterBuffer*, int, int, QRgba64 const&, unsigned char const*, int, int, int)': qdrawhelper.cpp:(.text+0x18be4): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)'
    qdrawhelper.cpp:(.text+0x18c68): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)' qdrawhelper.cpp:(.text+0x18ca4): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)'
    qdrawhelper.cpp:(.text+0x18d0b): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)' qdrawhelper.cpp:(.text+0x18d4c): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)'
    .obj/qdrawhelper.o:qdrawhelper.cpp:(.text+0x18d9b): more undefined references to qt_memfill16(unsigned short*, unsigned short, int)' follow .obj/qdrawhelper.o: In function qt_fetch_linear_gradient(unsigned int*, Operator const*, QSpanData const*, int, int, int)':
    qdrawhelper.cpp:(.text+0x35848): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o: In function qt_fetch_radial_gradient_plain(unsigned int*, Operator const*, QSpanData const*, int, int, int)':
    qdrawhelper.cpp:(.text+0x366c9): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o: In function blend_color_rgb16(int, QT_FT_Span_ const*, void*)':
    qdrawhelper.cpp:(.text+0x38fa0): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)' .obj/qdrawhelper.o: In function blend_color_argb(int, QT_FT_Span_ const*, void*)':
    qdrawhelper.cpp:(.text+0x395df): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o: In function qt_rectfill_rgba(QRasterBuffer*, int, int, int, int, QRgba64 const&)':
    qdrawhelper.cpp:(.text+0x39760): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o: In function qt_rectfill_quint16(QRasterBuffer*, int, int, int, int, QRgba64 const&)':
    qdrawhelper.cpp:(.text+0x39bb0): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)' qdrawhelper.cpp:(.text+0x39bed): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)'
    .obj/qdrawhelper.o: In function qt_rectfill_argb32(QRasterBuffer*, int, int, int, int, QRgba64 const&)': qdrawhelper.cpp:(.text+0x39c70): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qdrawhelper.o: In function qt_rectfill_nonpremul_rgba(QRasterBuffer*, int, int, int, int, QRgba64 const&)': qdrawhelper.cpp:(.text+0x3ab07): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qdrawhelper.o: In function qt_rectfill_nonpremul_argb32(QRasterBuffer*, int, int, int, int, QRgba64 const&)': qdrawhelper.cpp:(.text+0x3ac10): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qdrawhelper.o: In function void qt_rectfill_rgb30<(QtPixelOrder)0>(QRasterBuffer*, int, int, int, int, QRgba64 const&)': qdrawhelper.cpp:(.text+0x3ad60): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    qdrawhelper.cpp:(.text+0x3ad9d): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o:qdrawhelper.cpp:(.text+0x3aec0): more undefined references to qt_memfill32(unsigned int*, unsigned int, int)' follow
    .obj/qdrawhelper.o: In function qt_gradient_quint16(int, QT_FT_Span_ const*, void*)': qdrawhelper.cpp:(.text+0x401c5): undefined reference to qt_memfill16(unsigned short*, unsigned short, int)'
    .obj/qdrawhelper.o: In function qt_rectfill_rgba(QRasterBuffer*, int, int, int, int, QRgba64 const&)': qdrawhelper.cpp:(.text+0x3979b): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qdrawhelper.o: In function qt_rectfill_argb32(QRasterBuffer*, int, int, int, int, QRgba64 const&)': qdrawhelper.cpp:(.text+0x39cab): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qdrawhelper.o: In function qt_rectfill_nonpremul_rgba(QRasterBuffer*, int, int, int, int, QRgba64 const&)': qdrawhelper.cpp:(.text+0x3ab3a): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qdrawhelper.o: In function qt_rectfill_nonpremul_argb32(QRasterBuffer*, int, int, int, int, QRgba64 const&)': qdrawhelper.cpp:(.text+0x3ac4b): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qdrawhelper.o: In function _GLOBAL__sub_I_qdrawhelper.cpp': qdrawhelper.cpp:(.text.startup+0xc): undefined reference to qt_bitmapblit32_sse2(QRasterBuffer*, int, int, QRgba64 const&, unsigned char const*, int, int, int)'
    qdrawhelper.cpp:(.text.startup+0x13): undefined reference to qt_scale_image_argb32_on_argb32_sse2(unsigned char*, int, unsigned char const*, int, int, QRectF const&, QRectF const&, QRect const&, int)' qdrawhelper.cpp:(.text.startup+0x1a): undefined reference to qt_blend_rgb32_on_rgb32_sse2(unsigned char*, int, unsigned char const*, int, int, int, int)'
    qdrawhelper.cpp:(.text.startup+0x36): undefined reference to qt_bitmapblit16_sse2(QRasterBuffer*, int, int, QRgba64 const&, unsigned char const*, int, int, int)' qdrawhelper.cpp:(.text.startup+0x44): undefined reference to qt_bitmapblit8888_sse2(QRasterBuffer*, int, int, QRgba64 const&, unsigned char const*, int, int, int)'
    qdrawhelper.cpp:(.text.startup+0x8a): undefined reference to qt_blend_argb32_on_argb32_sse2(unsigned char*, int, unsigned char const*, int, int, int, int)' qdrawhelper.cpp:(.text.startup+0xc9): undefined reference to qt_fetch_radial_gradient_sse2(unsigned int*, Operator const*, QSpanData const*, int, int, int)'
    qdrawhelper.cpp:(.text.startup+0xd0): undefined reference to comp_func_SourceOver_sse2(unsigned int*, unsigned int const*, int, unsigned int)' qdrawhelper.cpp:(.text.startup+0xef): undefined reference to comp_func_solid_SourceOver_sse2(unsigned int*, int, unsigned int, unsigned int)'
    qdrawhelper.cpp:(.text.startup+0xf9): undefined reference to comp_func_Source_sse2(unsigned int*, unsigned int const*, int, unsigned int)' qdrawhelper.cpp:(.text.startup+0x104): undefined reference to comp_func_Plus_sse2(unsigned int*, unsigned int const*, int, unsigned int)'
    .obj/qcompositionfunctions.o: In function rasterop_solid_NotSource(unsigned int*, int, unsigned int, unsigned int)': qcompositionfunctions.cpp:(.text+0x5abf): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qcompositionfunctions.o: In function comp_func_solid_Clear(unsigned int*, int, unsigned int, unsigned int)': qcompositionfunctions.cpp:(.text+0x5f1d): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qcompositionfunctions.o: In function comp_func_solid_Source(unsigned int*, int, unsigned int, unsigned int)': qcompositionfunctions.cpp:(.text+0x63dd): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qcompositionfunctions.o: In function comp_func_solid_SourceOver(unsigned int*, int, unsigned int, unsigned int)': qcompositionfunctions.cpp:(.text+0x68d7): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qcompositionfunctions.o: In function comp_func_Clear(unsigned int*, unsigned int const*, int, unsigned int)': qcompositionfunctions.cpp:(.text+0x961b): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qcompositionfunctions.o:qcompositionfunctions.cpp:(.text+0x26196): more undefined references to `qt_memfill32(unsigned int*, unsigned int, int)' follow
    collect2: error: ld returned 1 exit status
    Makefile:1177: recipe for target '../../lib/libQt5Gui.so.5.12.4' failed
    make[3]: *** [../../lib/libQt5Gui.so.5.12.4] Error 1
    make[3]: Leaving directory '/home/sy/software/qmake_build/qt-everywhere-src-5.12.4/qtbase/src/gui'
    Makefile:554: recipe for target 'sub-gui-make_first' failed
    make[2]: *** [sub-gui-make_first] Error 2
    make[2]: Leaving directory '/home/sy/software/qmake_build/qt-everywhere-src-5.12.4/qtbase/src'
    Makefile:50: recipe for target 'sub-src-make_first' failed
    make[1]: *** [sub-src-make_first] Error 2
    make[1]: Leaving directory '/home/sy/software/qmake_build/qt-everywhere-src-5.12.4/qtbase'
    Makefile:56: recipe for target 'module-qtbase-make_first' failed
    make: *** [module-qtbase-make_first] Error 2

    My configure is:
    ./configure -v
    -opensource
    -confirm-license
    -shared
    -prefix /opt/qt
    -release
    -opensource
    -confirm-license
    -device-option CROSS_COMPILE=/opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
    -make libs
    -nomake examples
    -nomake tests
    -nomake tools
    -no-use-gold-linker
    -optimized-qmake
    -pch
    -qt-zlib
    -qt-libpng
    -qt-libjpeg
    -qt-freetype
    -no-opengl
    -no-sse2
    -no-openssl
    -no-cups
    -no-separate-debug-info
    -no-iconv
    -skip qt3d
    -skip qtcanvas3d
    -skip qtdatavis3d
    -skip qtdoc
    -skip qtgamepad
    -skip androidextras
    -skip qtmacextras
    -skip qtnetworkauth
    -skip qtpurchasing
    -skip qtwayland
    -skip qtwinextras
    -skip qtx11extras
    -skip qtwebchannel
    -skip qtwebengine
    -skip qtwebsockets
    -skip qtwebview
    -skip qtsensors
    -skip qtscript
    -skip qttools
    -skip qtconnectivity
    -skip qtxmlpatterns
    -skip qttranslations
    -skip qtspeech
    -skip qtsvg
    -skip qtscxml \

    My mkspec is:

    qmake configuration for building with aarch64-linux-gnu-g++

    MAKEFILE_GENERATOR = UNIX
    CONFIG += incremental
    QMAKE_INCREMENTAL_STYLE = sublib

    include(../common/linux.conf)
    include(../common/gcc-base-unix.conf)
    include(../common/g++-unix.conf)

    modifications to g++.conf

    QMAKE_CC = /opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
    QMAKE_CXX = /opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
    QMAKE_LINK = /opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
    QMAKE_LINK_SHLIB = /opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++

    modifications to linux.conf

    QMAKE_AR = /opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-ar cqs
    QMAKE_OBJCOPY = /opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-objcopy
    QMAKE_NM = /opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm -P
    QMAKE_STRIP = /opt/toolchain/7.5.0/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-strip
    load(qt_config)

    How can I solve it?

    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved