Cross compiled QT5 program crash immediately

Discussion in 'Linux Ubuntu' started by Riccardo Zamuner, May 12, 2015.

  1. Riccardo Zamuner

    Riccardo Zamuner New Member

    Joined:
    May 7, 2015
    Messages:
    12
    Likes Received:
    0
    Hi guys,

    I've cross compile Qt5 following the tutorial called "how to build qt5 for udoo". I was able to follow all steps without any problem, but I was not able to run qt5 example. I tryed to load q QtGui example but the program ends immediately. The same behaviour for a QtConsole program.
    I also used strace to verify if some libraries are missing or not, but it looks good. Actually I'm run UDOObuntu 12.04, qt5 on UDOO dual.
    Following the strace of a simple hello world program.

    Code:
     strace ./QtConsole
    execve("./QtConsole", ["./QtConsole"], [/* 30 vars */]) = 0
    brk(0)                                  = 0x11000
    uname({sys="Linux", node="udoobuntu", ...}) = 0
    access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
    mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aad1000
    access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/v7l/neon/vfp/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/v7l/neon/vfp", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/v7l/neon/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/v7l/neon", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/v7l/vfp/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/v7l/vfp", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/v7l/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/v7l", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/neon/vfp/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/neon/vfp", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/neon/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/neon", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/vfp/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls/vfp", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/tls/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/tls", 0x7ecf61d0)  = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/v7l/neon/vfp/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/v7l/neon/vfp", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/v7l/neon/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/v7l/neon", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/v7l/vfp/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/v7l/vfp", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/v7l/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/v7l", 0x7ecf61d0)  = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/neon/vfp/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/neon/vfp", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/neon/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/neon", 0x7ecf61d0) = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/vfp/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
    stat64("/opt/qt5/lib/vfp", 0x7ecf61d0)  = -1 ENOENT (No such file or directory)
    open("/opt/qt5/lib/libQt5Core.so.5", O_RDONLY|O_CLOEXEC) = 3
    read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\250\242\6\0004\0\0\0"..., 512) = 512
    lseek(3, 5309452, SEEK_SET)             = 5309452
    read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120
    lseek(3, 5309164, SEEK_SET)             = 5309164
    read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\3\f"..., 53) = 53
    exit_group(1)                           = ?
    
    Many thanks for your help! I'm gonna be crazy!

    zamu
     
  2. Andrea Rovai

    Andrea Rovai Well-Known Member

    Joined:
    Oct 27, 2014
    Messages:
    1,703
    Likes Received:
    240
    Hi Riccardo,
    as written in the official guide, qt5 doesn't work on UDOObuntu at the moment. I've just put it in bold in the guide to highlight it.
     
  3. Riccardo Zamuner

    Riccardo Zamuner New Member

    Joined:
    May 7, 2015
    Messages:
    12
    Likes Received:
    0
    Sorry Andrea,

    I've used the wrong UDOO's distro! Using the tutorial's version it works correctly but I've some problem with Qt window and framebuffer (no input is passed to Qt window).

    Thanks

    zamu
     
  4. nicola

    nicola Member

    Joined:
    Apr 23, 2014
    Messages:
    45
    Likes Received:
    0
    I had the same problem and i think is caused by the program not having the permission to read the input devices.

    I initially solved running the program as root. As a more safe solution you can edit the udev rules to allow access to the input devices to the user running the program.
    For example I added a file in /etc/udev/rules.d containing the rule
    Code:
    KERNEL=="mouse*|mice|event*",        MODE="0666"
    so any user have access to the input devices. This can be a too permissive solution but it's better than running a software in development as root. It's probably possible to restrict it more reading the udev documentation.
     

Share This Page