Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct

    "applet not found" when trying to run an application on embedded linux

    Mobile and Embedded
    2
    12
    6740
    Loading More Posts
    • 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.
    • W
      wowy last edited by

      Hi,

      After configuring, making and installing qt for embedded linux and using it in my qt creator i want to try a little application on my boar (a simple window+button msgbox). But when i try to run the application with "./" (and with a chmod 755) i have this error "applet not found".
      Do i have to copy other things aside from teh executable to the board, like libraries and if yes where can i find this kind of files i need ?

      1 Reply Last reply Reply Quote 2
      • SGaist
        SGaist Lifetime Qt Champion last edited by

        Hi,

        Unless you build Qt statically, you need to have it installed on your target. The dlls you need depends on your application has well as your Qt version. What is your current setup ?

        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 Reply Quote 0
        • W
          wowy last edited by

          Hi,

          I configured my qt like this :
          ./configure -opensource -confirm-license -prefix /usr/local/Qt-4.8.5-arm -embedded arm -little-endian -no-pch -xplatform qws/linux-arm-gnueabi-g++

          Which i guess is not statically, after ready the configure help i think i must add -static and reconfigure my qt once again right ? Ten i will only have to copy the executable to the target device ?

          Also one question (sorry if this is not in relation with the thread), my application will use a touchscreen so i should configure qt with -qt-mouse-tslib i think ?

          1 Reply Last reply Reply Quote 0
          • W
            wowy last edited by

            After trying to configure qt like this :

            ./configure -opensource -confirm-license -prefix /usr/local/Qt-4.8.5-arm -embedded arm -little-endian -no-pch -xplatform qws/linux-arm-gnueabi-g++ -static -qt-mouse-tslib

            i get the error :

            The tslib functionality test failed!
            You might need to modify the include and library search paths by editing
            QMAKE_INCDIR and QMAKE_LIBDIR in (my device in qt)

            After reading a little i tried to cross compile tslib to then add the include dir and lib dir to qt.
            So i configure it for my arm :

            ./configure --prefix=$HOME/dev/tslib_arm --host=arm-linux-gnueabi

            then i "make" it, no problem.

            But when trying to "sudo make install" i have the error :

            libtool: install: error: cannot install `linear.la' to a directory not ending in /home/spi/dev/tslib_arm/lib/ts/

            If i ignore this and edit the qmake in Qt to give it the include/lib directories i still have the first error message.

            1 Reply Last reply Reply Quote 0
            • SGaist
              SGaist Lifetime Qt Champion last edited by

              Did you re-configure from a clean source tree ? If not, then first clean the sources and then reconfigure. Otherwise you can also out of source build so if something goes wrong you can simply nuke the folder and restart directly.

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

              W 2 Replies Last reply Reply Quote 0
              • W
                wowy @SGaist last edited by

                @SGaist

                I eraded all my source folder, then extracted them again. This way i will have clean folders to work with.
                I use :
                qt-everywhere-opensource-src-4.8.5 as source for QT
                gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux as toolchain
                tslib-1.0 because of the touchscreen

                I go into the lslib-1.0 folder, i chmod a+x autogen.sh and run it, then i configure tslib:

                ./configure --host=arm-linux-gnueabi --prefix=/usr/local/tslib --enable-static --enable-shared

                No error message here.

                I try to "make" it. Error :

                ts_test.c:(.text.startup+0x320): undefined reference to rpl_malloc' fbutils.o: In function open_framebuffer':
                fbutils.c:(.text+0x110): undefined reference to `rpl_malloc'

                I erase the folder, extract it again to be clean. Chmod autogen.sh, run it.
                I configure tslib again.
                I go into config.h and comment the line :

                #define malloc rpl_malloc

                I try to make it again, another error :

                In function ‘open’,
                inlined from ‘main’ at ts_calibrate.c:227:11:
                /usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/include/bits/fcntl2.h:50:24: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments

                In function ‘open’,
                inlined from ‘main’ at ts_calibrate.c:229:11:
                /usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/include/bits/fcntl2.h:50:24: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments
                make[2]: *** [ts_calibrate.o] Error 1
                make[2]: Leaving directory /home/spi/installQt/tslib-1.0/tslib-1.0/tests' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory /home/spi/installQt/tslib-1.0/tslib-1.0'
                make: *** [all] Error 2

                After looking on the internet it seems a lot of people are having a really bad time using qt with arm devices, especially with tslib.

                1 Reply Last reply Reply Quote 0
                • W
                  wowy @SGaist last edited by wowy

                  Hi,

                  I finanlly installed qt statically with tslib but i still have this "applet not found" error when running the application.

                  I used this :
                  qt-everywhere-opensource-src-4.8.5
                  gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux
                  tslib-1.0

                  I first configured my tslib with my compiler an i enabled static too :

                  chmod a+x autogen.sh
                  ./autogen.sh

                  ./configure CC=/home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-gcc CXX=/home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-g++ --prefix=/home/spi/installQt/tslib-arm --host=arm-linux-gnueabihf --enable-shared=yes --enable-static=yes

                  make
                  make install

                  No error for now.

                  I change the qmake in Qt to work with my compiler and with tslib :

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

                  QMAKE_CC = /home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-gcc
                  QMAKE_CXX = /home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-g++
                  QMAKE_LINK = /home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-g++
                  QMAKE_LINK_SHLIB = /home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-g++

                  QMAKE_AR = /home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-ar cqs
                  QMAKE_OBJCOPY = /home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-objcopy
                  QMAKE_STRIP = /home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-strip
                  QMAKE_INCDIR += /home/spi/installQt/tslib-arm/include
                  QMAKE_LIBDIR += /home/spi/installQt/tslib-arm/lib

                  load(qt_config)

                  I configured qt :

                  ./configure -opensource -confirm-license -prefix /usr/local/Qt-4.8.5-arm-linux -embedded arm -little-endian -no-pch -xplatform qws/linux-arm-gnueabi-g++ -qt-mouse-tslib -no-webkit -no-qt3support -no-cups -no-largefile -optimized-qmake -no-openssl -nomake tools -static

                  Static and with qt-mouse-tslib to use the touch screen (i don't think i need another option to display too but please correct me if i made mistake)

                  make
                  sudo make install

                  No error yet.

                  I create the new kit in qt creator by selecting the qmake of this qt (/usr/local/Qt-4.8.5-arm-linux/bin/) and the good compiler (/home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-g++).

                  I add the argument to make :
                  ARCH=arm CROSS_COMPILE=/home/spi/installQt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux/bin/arm-linux-gnueabihf-

                  I want to add the argument to qmake :
                  -spec linux-arm-gnueabi-g++

                  But when adding it i have erros message in qt creator :
                  /usr/local/Qt-4.8.5-arm-linux/mkspecs/linux-arm-gnueabi-g++/qmake.conf:6: warning: Unable to find file for inclusion ../../common/linux.conf

                  /usr/local/Qt-4.8.5-arm-linux/mkspecs/linux-arm-gnueabi-g++/qmake.conf:7: warning: Unable to find file for inclusion ../../common/gcc-base-unix.conf

                  /usr/local/Qt-4.8.5-arm-linux/mkspecs/linux-arm-gnueabi-g++/qmake.conf:8: warning: Unable to find file for inclusion ../../common/g++-unix.conf

                  /usr/local/Qt-4.8.5-arm-linux/mkspecs/linux-arm-gnueabi-g++/qmake.conf:9: warning: Unable to find file for inclusion ../../common/qws.conf

                  If i don't put the argument and before running the application use the environment :
                  export QWS_MOUSE_PROTO=tslib:/usr/input/ts
                  export QWS_DISPLAY=LinuxFB:mmWidth=480:mmHeight=272

                  I get the error "applet not found".

                  1 Reply Last reply Reply Quote 0
                  • SGaist
                    SGaist Lifetime Qt Champion last edited by

                    You don't need to pass anything special to qmake if you just want to build your application. Same goes for ARCH and CROSS_COMPILE, they should not be needed.

                    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 Reply Quote 0
                    • W
                      wowy last edited by

                      @SGaist
                      After trying to compile a little simple "hello world" with the compiler i use here i noticed the same issue because i made an error in one of my previous path making me think the compiler was working.
                      I now found a compiler working (arm-linux-gcc-3.4.5-glibc-2.3.6-linux), with this one and when being sure of the path the compilation of a little .c file is working an run on the board but now i have a news error :

                      I followed the same steps.
                      I configured qt like this :

                      ./configure -embedded arm -little-endian -no-armfpa -qt-gfx-transformed -qt-gfx-linuxfb -nomake demos -nomake examples -no-svg -no-phonon -no-qt3support -lrt -no-feature-CURSOR -qt-mouse-tslib -xplatform qws/linux-arm-g++

                      Still no error at this point.

                      But when i want to "make" qt i have this error now :

                      g++ -c -include .pch/release-shared-emb-arm/QtCore -pipe -pipe -pipe -fno-exceptions -O2 -O2 -O2 -fvisibility=hidden -fvisibility-inlines-hidden -fvisibility=hidden -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -Wall -W -Wall -W -D_REENTRANT -D_REENTRANT -D_REENTRANT -fPIC -fPIC -fPIC -DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/qws/linux-arm-g++ -I. -I../../include -I../../include/QtCore -I.rcc/release-shared-emb-arm -Iconcurrent -Iglobal -I../3rdparty/harfbuzz/src -I.moc/release-shared-emb-arm -I.uic/release-shared-emb-arm -I/home/spi/installQt/tslib-arm/include -o .obj/release-shared-emb-arm/qfutureinterface.o concurrent/qfutureinterface.cpp
                      ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h: Assembler messages:
                      ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %cl,%dl,[%ebp]' ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %dl,%sil,[%ebp]'
                      ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %sil,%cl,[%ebp]' ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %cl,%dl,[%ebp]'
                      ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %dl,%dil,[%ebp]' ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %cl,%dl,[%ebp]'
                      ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %cl,%dl,[%ebp]' ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %dl,%sil,[%ebp]'
                      ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %sil,%cl,[%ebp]' ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %dl,%dil,[%ebp]'
                      ...
                      repeating more until :
                      ...
                      ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %cl,%dl,[%edi]' ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %dl,%sil,[%edi]'
                      ../../include/QtCore/../../src/corelib/arch/qatomic_arm.h:111: Error: no such instruction: swpb %cl,%dl,[%edi]' make[1]: *** [.obj/release-shared-emb-arm/qfutureinterface.o] Error 1 make[1]: Leaving directory /home/spi/installQt/qt-embedded-linux-opensource-src-4.4.3/src/corelib'
                      make: *** [sub-corelib-make_default-ordered] Error 2

                      1 Reply Last reply Reply Quote 0
                      • SGaist
                        SGaist Lifetime Qt Champion last edited by

                        That's a way too old compiler. IIRC, 4.1.1 is the minimum version

                        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 Reply Quote 0
                        • W
                          wowy last edited by wowy

                          I installed the last version of gcc-arm-linux-gnueabi but when compiling a .c (which when compiling with the gcc 3.4.5 works on my board) and trying to run i get a
                          "No such file or directory" even after a chmod 755.

                          Now when compiling qt4.5.1 with gcc 3.4.5 i have no more error in the configuration, in the make, in the make install. Creating the kit in qt creator don't generate an error, building the app and the qmake seems to work to because i have an executable in the release folder and no error message.

                          I copied my qt folder and my tslib folder at the exact same place on the board as where it is on the dev platform (my ubuntu pc). Then i change the environement variable as :

                          export QWS_MOUSE_PROTO=tslib:/dev/input/event0
                          export QWS_DISPLAY=LinuxFB:mmWidth=480:mmHeight=272
                          export QTDIR=/usr/local/Qt-4.5.1-arm-linux-CD
                          export LD_LIBRARY_PATH=/home/spi/installQt/tslib-arm/lib
                          export TSLIB_PLUGINDIR=/home/spi/installQt/tslib-arm/lib/ts
                          export TSLIB_TSDEVICE=/home/spi/installQt/tslib-arm/lib/ts
                          export TSLIB_TSEVENTTYPE=INPUT
                          export TSLIB_CONFFILE=/home/spi/installQt/tslib-arm/etc/ts.conf
                          export TSLIB_CONSOLEDEVICE=none

                          If i try to run the application like this "./app -qws" nothing happen and "SEGV" appear in the terminal.

                          When running the old ts_test, ts_calibrate they can use the touch screen.

                          I am thinking of reconfiguring/making my qt source but this time not creating tslib myself but using the tslib from the rootfs i have this way normally I should be surce that Qt is linked to the very same tslib.

                          1 Reply Last reply Reply Quote 0
                          • SGaist
                            SGaist Lifetime Qt Champion last edited by

                            What does a run through the debugger tell you ?

                            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 Reply Quote 0
                            • First post
                              Last post