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. [Solved] Qt 5.4.1 for AM335x
Forum Updated to NodeBB v4.3 + New Features

[Solved] Qt 5.4.1 for AM335x

Scheduled Pinned Locked Moved Installation and Deployment
am335xqt 5.4.1
15 Posts 3 Posters 7.2k Views 2 Watching
  • 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.
  • C Offline
    C Offline
    chad
    wrote on last edited by chad
    #1

    Hello,

    I'm currently attempting to build Qt 5.4.1 for our AM3352 platform. We currently have Qt4.8 working and I'm looking to move to the latest Qt so I can use extra features like QJSON, etc.

    Anyways, when I compile I get the following errors:

    qimage.cpp:(.text+0x40f0): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' qimage.cpp:(.text+0x4250): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    .obj/qimage_conversions.o: In function qInitImageConversions()': qimage_conversions.cpp:(.text+0x35a0): undefined reference to convert_RGB888_to_RGB32_neon(QImageData*, QImageData const*, QFlagsQt::ImageConversionFlag)'
    .obj/qdrawhelper.o: In function qt_rectfill_argb32(QRasterBuffer*, int, int, int, int, unsigned int)': qdrawhelper.cpp:(.text+0x6568): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)'
    qdrawhelper.cpp:(.text+0x6582): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o: In function rasterop_solid_NotSource(unsigned int*, int, unsigned int, unsigned int)':
    qdrawhelper.cpp:(.text+0x6594): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o: In function comp_func_solid_Source(unsigned int*, int, unsigned int, unsigned int)':
    qdrawhelper.cpp:(.text+0x6732): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o: In function comp_func_Clear(unsigned int*, unsigned int const*, int, unsigned int)':
    qdrawhelper.cpp:(.text+0x6886): undefined reference to qt_memfill32(unsigned int*, unsigned int, int)' .obj/qdrawhelper.o:qdrawhelper.cpp:(.text+0x69da): more undefined references to qt_memfill32(unsigned int*, unsigned int, int)' follow
    .obj/qdrawhelper.o: In function qInitDrawhelperAsm()': qdrawhelper.cpp:(.text+0x1b04c): undefined reference to qt_blend_rgb32_on_rgb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
    qdrawhelper.cpp:(.text+0x1b054): undefined reference to qt_blend_argb32_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' qdrawhelper.cpp:(.text+0x1b058): undefined reference to qt_blend_argb32_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
    qdrawhelper.cpp:(.text+0x1b05c): undefined reference to qt_blend_rgb16_on_argb32_neon(unsigned char*, int, unsigned char const*, int, int, int, int)' qdrawhelper.cpp:(.text+0x1b060): undefined reference to qt_blend_rgb16_on_rgb16_neon(unsigned char*, int, unsigned char const*, int, int, int, int)'
    qdrawhelper.cpp:(.text+0x1b064): 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)' qdrawhelper.cpp:(.text+0x1b06c): 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)'
    qdrawhelper.cpp:(.text+0x1b078): 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)' qdrawhelper.cpp:(.text+0x1b080): 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)'
    qdrawhelper.cpp:(.text+0x1b084): undefined reference to qt_alphamapblit_quint16_neon(QRasterBuffer*, int, int, unsigned int, unsigned char const*, int, int, int, QClipData const*)' qdrawhelper.cpp:(.text+0x1b088): undefined reference to qt_blend_argb32_on_argb32_scanline_neon(unsigned int*, unsigned int const*, int, unsigned int)'
    qdrawhelper.cpp:(.text+0x1b08c): undefined reference to comp_func_solid_SourceOver_neon(unsigned int*, int, unsigned int, unsigned int)' qdrawhelper.cpp:(.text+0x1b090): undefined reference to comp_func_Plus_neon(unsigned int*, unsigned int const*, int, unsigned int)'
    qdrawhelper.cpp:(.text+0x1b094): undefined reference to qt_destFetchRGB16_neon(unsigned int*, QRasterBuffer*, int, int, int)' qdrawhelper.cpp:(.text+0x1b098): undefined reference to qt_destStoreRGB16_neon(QRasterBuffer*, int, int, unsigned int const*, int)'
    qdrawhelper.cpp:(.text+0x1b0a0): undefined reference to qt_memrotate90_16_neon(unsigned char const*, int, int, int, unsigned char*, int)' qdrawhelper.cpp:(.text+0x1b0a4): undefined reference to qt_memrotate270_16_neon(unsigned char const*, int, int, int, unsigned char*, int)'
    qdrawhelper.cpp:(.text+0x1b0a8): undefined reference to `qt_fetch_radial_gradient_neon(unsigned int*, Operator const*, QSpanData const*, int, int, int)'
    collect2: ld returned 1 exit status
    make[3]: *** [../../lib/libQt5Gui.so.5.4.1] Error 1

    I have looked up some solutions here and have added the neon entry into my qmodule.pri file in mkspecs but I am still getting this error.

    Does anyone have any advice?

    Here is my configuration:

    ./configure -v
    -release
    -opensource
    -confirm-license
    -prefix /usr
    -device-option CROSS_COMPILE=$ARM_TOOLS_PATH/$TARGET-
    -xplatform $QTMKSPECDIR
    -make libs
    -no-pch
    -nomake examples
    -nomake tests
    -no-accessibility
    -no-opengl
    -no-kms
    -no-compile-examples

    Thanks

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi and welcome to devnet,

      What cross-compiler are you using ?

      What mkspec is it ?

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • C Offline
        C Offline
        chad
        wrote on last edited by
        #3

        Hello!

        Thanks the reply and the welcome, I'm fairly new to Qt development (around 1 year).

        I am cross compiling using arm-linux-gnueabi, specificially gcc and g++.

        Mkspec is linux-am335x-g++

        Here's a copy of my mkspec:

        MAKEFILE_GENERATOR = UNIX
        CONFIG += incremental gdb_dwarf_index
        QMAKE_INCREMENTAL_STYLE = sublib

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

        #clearly define which compiler we are using
        QMAKE_CC = $TARGET-gcc
        QMAKE_CXX = $TARGET-g++
        QMAKE_LINK = $TARGET-g++
        QMAKE_LINK_SHLIB = $TARGET-g++
        QMAKE_AR = $ARM_TOOLS_PATH/$TARGET-ar cqs
        QMAKE_OBJCOPY = $ARM_TOOLS_PATH/$TARGET-objcopy
        QMAKE_STRIP = $ARM_TOOLS_PATH/$TARGET-strip

        #tunes the application for this architecture and floating point unit
        QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
        QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp

        #points the QT cross-compile to the correct libraries
        QMAKE_INCDIR = $ROOTFS_PATH/usr/include
        QMAKE_LIBDIR = $ROOTFS_PATH/usr/lib

        #to make AT projects compile correctly by dereferencing this project
        QMAKE_INCDIR_QT = $ROOTFS_PATH/usr/include
        QMAKE_LIBDIR_QT = $ROOTFS_PATH/usr/lib
        QMAKE_LFLAGS += -Wl,--rpath=$ROOTFS_PATH/usr/lib -Wl,--rpath=$ROOTFS_PATH/lib -lgthread-2.0 -lglib-2.0 -lz

        #QMAKE_LFLAGS += --verbose -Wl,--verbose=10

        load(qt_config)

        Sorry if I misunderstood any of your questions, if I did just let me know and I'll do my best to get the correct information.

        Thanks again!

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          What is the value of $TARGET ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • C Offline
            C Offline
            chad
            wrote on last edited by
            #5

            The value of $TARGET is arm-linux-gnueabi

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #6

              And the value of $QTMKSPECDIR ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • C Offline
                C Offline
                chad
                wrote on last edited by
                #7

                The value of $QTMKSPECDIR is linux-am335x-g++

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  IIRC, you should rather set the common C and CXX flags in QMAKE_CFLAGS and QMAKE_CXXFLAGS rather than in the release configuration only.

                  Something like:

                  COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
                  QMAKE_CFLAGS += $${COMPILER_FLAGS}
                  QMAKE_CXXFLAGS += $${COMPILER_FLAGS}
                  QMAKE_CFLAGS_RELEASE += -O3
                  

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  C 1 Reply Last reply
                  1
                  • C Offline
                    C Offline
                    chad
                    wrote on last edited by
                    #9

                    Thanks SGaist,

                    I'm going to try compiling this with the changes now.

                    Hopefully this fixes it.

                    1 Reply Last reply
                    0
                    • SGaistS SGaist

                      IIRC, you should rather set the common C and CXX flags in QMAKE_CFLAGS and QMAKE_CXXFLAGS rather than in the release configuration only.

                      Something like:

                      COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
                      QMAKE_CFLAGS += $${COMPILER_FLAGS}
                      QMAKE_CXXFLAGS += $${COMPILER_FLAGS}
                      QMAKE_CFLAGS_RELEASE += -O3
                      
                      C Offline
                      C Offline
                      chad
                      wrote on last edited by
                      #10

                      @SGaist said:

                      IIRC, you should rather set the common C and CXX flags in QMAKE_CFLAGS and QMAKE_CXXFLAGS rather than in the release configuration only.

                      Something like:

                      COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
                      QMAKE_CFLAGS += $${COMPILER_FLAGS}
                      QMAKE_CXXFLAGS += $${COMPILER_FLAGS}
                      QMAKE_CFLAGS_RELEASE += -O3
                      

                      This worked!

                      Thank you very much!!

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #11

                        You're welcome !

                        Don't forget to mark the thread as solved (in the Topic Tools Button)

                        Happy coding !

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        C 1 Reply Last reply
                        0
                        • SGaistS SGaist

                          You're welcome !

                          Don't forget to mark the thread as solved (in the Topic Tools Button)

                          Happy coding !

                          C Offline
                          C Offline
                          chad
                          wrote on last edited by
                          #12

                          @SGaist Hmm... it just has delete topic as an option?

                          1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #13

                            Strange, you should contact @tekojo about that

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            tekojoT 1 Reply Last reply
                            0
                            • SGaistS SGaist

                              Strange, you should contact @tekojo about that

                              tekojoT Offline
                              tekojoT Offline
                              tekojo
                              wrote on last edited by
                              #14

                              Strange, OP should have Mark as solved as an option. I'll take a look.

                              1 Reply Last reply
                              0
                              • tekojoT Offline
                                tekojoT Offline
                                tekojo
                                wrote on last edited by
                                #15

                                Figured it out.
                                The 'mark as solved' option is there for people with admin rights, as the functionality relies on the admin 'rename post' function.

                                For a thread OP to mark a post, he/she needs to add [solved] to the title.

                                I'll take a look at the plugin that adds the thread tool option to see if it could work with normal OP rights too.

                                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