could not find qtplatfom plugin eglfs



  • @jsulm

    I have extracted qt source code,that can be mmoved in QT5 directory,

    in QT5/qtbase/mkspecs/devices/linux-beagleboard-g++/qmake.conf file,

    the line presene QT_QPA_DEFAULT_PLATFORM= eglfs...

    so now i need to configure,

    I need to mentioned eglfs in my configure line,so

    ./configure -platform linux-g++ -release -device linux-beagleboard-g++ -sysroot /home/beagle/BB/sysroot -prefix /home/debian/Qt5ForBBB -hostprefix ~/Qt5ForBBB -device-option CROSS_COMPILE="path" -egl -eglfs -nomake tests -nomake examples -skip qtconnectivitty -recheck-all -v

    this is correct?



  • @jsulm eglfs is not activated,how do i activate it?


  • Qt Champions 2018

    @Asha said in could not find qtplatfom plugin eglfs:

    how do i activate it?

    Check the configure log to see what was missing (I'm quite sure that I already suggested that before).



  • @jsulm Hi,

    about eglfs i got this type error,

    looking for library opengl_es2
    Trying source 0 (type pkgConfig) of library opengl_es2 ...

    • PKG_CONFIG_SYSROOT_DIR=/home/beagle/BB/sysroot PKG_CONFIG_LIBDIR=/home/beagle/BB/sysroot/usr/lib/pkgconfig:/home/beagle/BB/sysroot/usr/share/pkgconfig:/home/beagle/BB/sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig /usr/bin/pkg-config --exists --silence-errors glesv2
      pkg-config did not find package.
      => source produced no result.
      Trying source 1 (type makeSpec) of library opengl_es2 ...
      None of [libGLESv2.so libGLESv2.a] found in [] and global paths.
      None of [libEGL.so libEGL.a] found in [] and global paths.
      None of [libIMGegl.so libIMGegl.a] found in [] and global paths.
      None of [libsrv_um.so libsrv_um.a] found in [] and global paths.
      => source produced no result.
      test config.qtbase_gui.libraries.opengl_es2 FAILED

    Any ideas ,how do I slove this?


  • Lifetime Qt Champion

    Hi,

    Do you have any of these libraries available on your sysroot ?
    If not then install the corresponding development package for your target.



  • @SGaist thank you for the replay,

    but i am not getting the path ,where i have to search those libraries...if you have idea then please let me know the path of those libraries...

    /home/beagle/BBB1/sysroot/lib/arm-linux-gnueabihf(is it correct)...



  • @SGaist in the path /home/beagle/usr/lib/arm-linux-gnueabihf i found those libraries



  • @Asha sorry in /home/debian/usr/lib/arm-linux-gnueabihf I found those libraries....



  • After configuring ,I am getting the errors

    ERROR: Feature 'opengles2' was enabled, but the pre-condition '(config.win32 && !features.opengl-dynamic) || (!config.watchos && !features.opengl-desktop && libs.opengl_es2)' failed.

    ERROR: Feature 'egl' was enabled, but the pre-condition '(features.opengl || features.openvg) && (features.angle || libs.egl)' failed.

    ERROR: Feature 'eglfs' was enabled, but the pre-condition '!config.android && !config.darwin && !config.win32 && !config.wasm && features.egl' failed.

    ERROR: The OpenGL functionality tests failed!
    You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2],
    QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.

    while checking the config.log file,i understood in my sysroot ,I dont have the libegl packages,how to install those packages? please guide me....

    in my qmake.conf file
    QMAKE_INCDIR_EGL=
    QMAKE_LIBDIR_EGL=

    this both are empty...what i need to specify there...below is the attachement of my qmake.conf file please go throught that one.....

    code_text#
    # qmake configuration for the BeagleBoard and BeagleBoard xM boards
    # http://beagleboard.org/
    
    MAKEFILE_GENERATOR      = UNIX
    CONFIG                 += incremental
    QMAKE_INCREMENTAL_STYLE = sublib
    
    include(../../common/linux.conf)
    include(../../common/gcc-base-unix.conf)
    include(../../common/g++-unix.conf)
    
    load(device_config)
    
    QT_QPA_DEFAULT_PLATFORM = eglfs
    
    # modifications to g++.conf
    QMAKE_CC                = $${CROSS_COMPILE}gcc
    QMAKE_CXX               = $${CROSS_COMPILE}g++
    QMAKE_LINK              = $${QMAKE_CXX}
    QMAKE_LINK_SHLIB        = $${QMAKE_CXX}
    
    # modifications to linux.conf
    QMAKE_AR                = $${CROSS_COMPILE}ar cqs
    QMAKE_OBJCOPY           = $${CROSS_COMPILE}objcopy
    QMAKE_NM                = $${CROSS_COMPILE}nm -P
    QMAKE_STRIP             = $${CROSS_COMPILE}strip
    
    COMPILER_FLAGS          = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb
    
    #modifications to gcc-base.conf
    QMAKE_CFLAGS           += $${COMPILER_FLAGS}
    QMAKE_CXXFLAGS         += $${COMPILER_FLAGS}
    QMAKE_CXXFLAGS_RELEASE += -O3
    
    QMAKE_LIBS             += -lrt -lpthread -ldl
    
    # Extra stuff (OpenGL, DirectFB, ...)
    QMAKE_INCDIR_EGL        =
    QMAKE_LIBDIR_EGL        =
    QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
    QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
    QMAKE_INCDIR_OPENVG     = $${QMAKE_INCDIR_EGL}
    QMAKE_LIBDIR_OPENVG     = $${QMAKE_LIBDIR_EGL}
    
    QMAKE_LIBS_EGL          = -lEGL -lIMGegl -lsrv_um
    QMAKE_LIBS_OPENGL_ES2   = -lGLESv2 $${QMAKE_LIBS_EGL}
    QMAKE_LIBS_OPENVG       = -lOpenVG $${QMAKE_LIBS_EGL}
    
    DISTRO_OPTS += hard-float
    
    # No need for any special EGL device integration.
    # Prioritize the default, compiled-in integration over any plugins.
    EGLFS_DEVICE_INTEGRATION = eglfs
    
    include(../common/linux_arm_device_post.conf)
    
    load(qt_config)
    

  • Qt Champions 2018

    @Asha said in could not find qtplatfom plugin eglfs:

    I dont have the libegl packages,how to install those packages?

    As any other packages...
    On my Ubuntu machine it is:

    apt install libegl1-mesa-dev
    

    Please learn to search for needed packages by yourself:

    apt search libegl
    


  • @jsulm Hi,

    when i tried to install this packages,I got already installed please throught the below screenshots....

    libegl.png

    sysroot also have those libraries ,here is the attachement

    libegl2.png
    so now what is problem? why it is not enabling....(may be the problem in specifying the path for those libraries in qmake.conf file?)...

    if got any idea ,then please let me know....



  • Any suggestions? please.....



  • @jsulm hi,

    in this https://forum.qt.io/topic/86678/error-feature-opengles2-was-enabled-but-the-pre-condition-config-win32-config-watchos-features-opengl-desktop-libs-opengl_es2-failed/6 ,as you suggested,

    I have the same config.log file for my device.can you please elaborate your this line

    Well, you need these libs in your sysroot: /mnt/rasp-pi-rootfs. If your sysroot is a copy of the RaspPi root file system then install the libs there (apt-get on RaspPi).

    even i also missing those libraries in my sysroot...i am not using any sd card,i flashed my device...how do i install those


  • Qt Champions 2018

    @Asha said in could not find qtplatfom plugin eglfs:

    i am not using any sd card,i flashed my device...how do i install those

    Install on device? Depends on your OS. But didn't we already discussed this thoroughly? If it's a Debian based Linux then you install packages using "apt". How do you create and update your sysroot?



  • @Asha

    it means, i need to flash my board with new debian image? after try to configure?



  • @jsulm I followed the below document ,please go through this one, even he also done with debian,created sysroot....

    here is the link https://forum.qt.io/topic/106912/how-to-copy-cross-compiled-qt-binaries-from-one-computer-to-another/13 in the post 13...click here you will get a one pdf(I followed that one) but he did with vnc plugin(export done vnc only),even i also have that vnc plugin and i tried (exported also)but getting the same issue....

    I am very new to this,(if i asked any foolish questions then sorry)



  • Hi,

    I connected ssh,via ssh debian@192.168.7.2

    after this,I am executing the executable

    ./example platform=vnc

    The result is QVncServer created on port 5900

    After this blank screen is showing...

    Any suggestions about this....



  • Hi,
    I tried ,creation and execution of application through command prompt only,

    created directory

    mkdir qws

    cd qws

    vi qws.pro
    TEMPLET=app
    SOURCES=main.cpp

    vi main.cpp
    #include<QApplication>
    #include<QPushButton>
    int main(int argc,char** argv)
    {
    QApplication app(argc,argv);
    QPushButton btn("HI");
    btn.show();
    btn.showMaximized();
    }

    After this gave the command

    qmake

    the output is:

    qmake:could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/make : No such file or directory

    I am fully confused what going,what is the mistake, i cross compiled the qt5 but its showing about qt4....any ideas ?please


  • Lifetime Qt Champion

    Always use the full path to the qmake version you want to use.

    Note that your cross-compiles Qt will have qmake built for the host and not the target.



  • @SGaist

    Good morning..

    yes Iused the full path,

    what ever I build and cross compiled ,i am able to run examples in vnc platform...

    but i want to build and cross compile qt with eglfs platform,for that any links?....



  • @SGaist Hi,

    I created the drectory,and created the .cpp and .pro file after that tring for qmke but getting "qmake: could not exec '/usr/lib/x86_64-Linux-gnu/qt4/bin/make': No such file or directory.."

    mkdir sample
    cd sample
    vi sample.cpp
    vi sample.pro
    qmake /home/beagle/Qt5/bin/qmake

    Any suggestions please?.......


  • Qt Champions 2018

    @Asha said in could not find qtplatfom plugin eglfs:

    Any suggestions please?.......

    "qmake /home/beagle/Qt5/bin/qmake" - what is this line supposed to be?!
    It should be

    /home/beagle/Qt5/bin/qmake
    


  • @jsulm yes,i gave this one /home/beagle/Qt5/bin/qmake

    After this i got the makefile,
    the gave the make

    after this make getting the error

    arm-linux-gnueabihf-g++: error : .o No such file or directory
    Makefile:141: recipe for target 'sample' failed
    make: ***[sample] Error 1

    when i list the files ,i got the sample.o file

    so I copied that obj file in my board using scp,

    And executing that sample.o file in board,
    ./sample.o platform=vnc

    getting the error:

    -bash: ./sample.o: cannot execute binary file: EXec format error


  • Qt Champions 2018

    @Asha You can't execute *.o files!
    Those needs to be linked together to an executable.

    "arm-linux-gnueabihf-g++: error : .o - please delete everything in your build directory, run qmake again and then build (call make).
    Also this error message looks strange - there should be actual file name in front of .o



  • @jsulm

    Those needs to be linked together to an executable.but i am not getting the executable file...

    getting this
    arm-linux-gnueabihf-g++: error : .o No such file or directory
    Makefile:141: recipe for target 'sample' failed
    make: ***[sample] Error 1

    .o - please delete everything in your build directory,

    I am not understood the above line,delete everything in build directory means,I need to delete the Qt5 directory files and directories?


  • Qt Champions 2018

    @Asha said in could not find qtplatfom plugin eglfs:

    I need to delete the Qt5 directory files and directories?

    No.
    What I mean is: delete all build artefacts from previous builds (like *.o files, Makefiles).



  • @jsulm I deleted the all makefiles and .o files now tring to execute sample.o file but getting the -bash: ./sample.o:cannot execute binary file: Exec format error..

    "You can't execute *.o files!",Please suggest me where i need to link that .o file(I am not getting any executable file)..


  • Qt Champions 2018

    @Asha said in could not find qtplatfom plugin eglfs:

    "You can't execute *.o files!",Please suggest me where i need to link that .o file(I am not getting any executable file)..

    You just need to build again!
    "I am not getting any executable file" - yes, because your build fails.
    Before I wrote: please delete everything in your build directory, run qmake again and then build (call make).
    So again: please run qmake and build.



  • @jsulm

    Hi,

    I done once again qmake and make,

    After make ,I got

    undefined reference to 'main'
    collect2: error :ld returned 1 exit status
    Makefile:137: recipe for target 'sample 'failed'
    make: *** [sample] Error 1

    After listing the files,the result is

    Makefile
    .qmake.stash
    sample.cpp
    sample.pro

    I am not getting ,what is the problem....


  • Qt Champions 2018

    @Asha Does your sample.cpp contain main() function?



  • @jsulm
    yes,

    #include <QCoreApplication>
    #include <QString>
    #include <QFile>
    #include <QDir>
    #include <QTextStream>
    #include <QDebug>
    int main(int argc, char *argv[])
    {
    QCoreApplication app(argc, argv);
    // prepare the message
    QString message("Hello World!");
    // prepare a file in the users home directory named out.txt
    QFile file(QDir::home().absoluteFilePath("out.txt"));
    // try to open the file in write mode
    if(!file.open(QIODevice::WriteOnly)) {
    qWarning() << "Can not open file with write access";
    return -1;
    }
    // as we handle text we need to use proper text codecs
    QTextStream stream(&file);
    // write message to file via the text stream
    stream << message;
    return 0;
    }
    ~                       
    

  • Qt Champions 2018

    @Asha Please show your pro file



  • @jsulm here is my .pro file

    Qt += core gui

    sources += \ sample.cpp

    target.path=/home/debian/Qt5
    INSTALLS +=target


  • Qt Champions 2018

    @Asha said in could not find qtplatfom plugin eglfs:

    \ sample.cpp

    why do you have backslash in front of sample.cpp?
    "Qt += core gui" must be "QT += core gui"

    [edit: Fixed variable name SGaist]



  • @jsulm as you said i followed but getting the same result,

    please say me tje .pro file for that .cpp file


  • Lifetime Qt Champion

    You don't even need to modify the QT variable content based on your code. However, as @jsulm wrote, your SOURCES line is wrong.

    In any case it should rather be

    QT += core gui
    SOURCES += sample.cpp
    

    Casing is important.


Log in to reply