Unable to run the Qt application as a stand alone application - linux

Steps I have tried to create stand alone web application
Host PC is Ubuntu 14.04, 64 bit OS.
Qt version - Qt5.6.
Testing on the virtual Box Ubuntu 14.04, 64 bit OS.
Application is working properly in the Host PC.
I copied all the web dependent files & process, platform dependent files and the lib files where the executable file is present, then I redirected the library path to the Present working directory of the executable.
command used : chrpath -r ./lib AppName
then when i run the application its breaking as
This application failed to start because it could not find or load the Qt platform plugin "xcb".
Available platform plugins are: xcb.
Reinstalling the application may fix this problem.
Aborted (core dumped)
I ran the ldd on libqxcb.so to find the dependent files.
command : ldd libqxcb.so
I solved this by manually coping the "not found files" to /usr/lib path
libQt5XcbQpa.so.5
libQt5DBus.so.5
libQt5Core.so.5
libQt5Gui.so.5
Now the application is breaking due to the below error :
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
Qt WebEngine data directory not found at location /home/user/Qt5.5.1/5.5/gcc_64. Trying application directory...
Qt WebEngine Plugins directory not found. Trying fallback directory... Plugins as for example video codecs MAY NOT work.
Installed Qt WebEngine locales directory not found at location /home/user/Qt5.5.1/5.5/gcc_64/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine data directory not found at location /home/user/Qt5.5.1/5.5/gcc_64. Trying application directory...
Qt WebEngine Plugins directory not found. Trying fallback directory... Plugins as for example video codecs MAY NOT work.
Installed Qt WebEngine locales directory not found at location /home/user/Qt5.5.1/5.5/gcc_64/translations/qtwebengine_locales. Trying application directory...
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
QOpenGLWidget: Failed to create context
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
QOpenGLWidget: Failed to create context
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
composeAndFlush: makeCurrent() failed
Segmentation fault (core dumped)
Can anyone guide me to solve above problem.
Thanks in advance.

Do you have a desktop version of Ubuntu running in virtual box?
Have you enabled "Enabled 3D Acceleration" in the VM options.
Have you installed the Virtualbox video drivers?
The issue is QtWebengine needs OpenGL to work that is why you are getting this error:
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled

Related

QtCreator Thinks Qt5 QMake installation is Invalid when setup from Yocto SDK Build

I successfully built and booted the Texas Instruments Processor SDK for the BeagleBone X15 using Yocto with the following command:
MACHINE=beagle-x15 bitbake -c populate_sdk arago-core-tisdk-image
Now I installed the Yocto SDK on the Ubuntu Host machine so that I can use QtCreator to CrossCompile and deploy from Ubuntu.
I setup the kit, but Yocto believes the Qt Installation is invalid ( please see the following screenshots ):
What can I do to fix this?
Turns out you need to source the environment-setup file prior to launching qtcreator:
[linux-devkit]:/usr/local/arago-2016.12> ls
environment-setup site-config-armv7ahf-neon-linux-gnueabi sysroots version-armv7ahf-neon-linux-gnueabi
[linux-devkit]:/usr/local/arago-2016.12> pwd
/usr/local/arago-2016.12

Nvidia Linux graphics debugger Qt platform plugin "xcb"

I have been trying to debug my OpenGL graphics application using Nvidia Linux graphics debugger, the debugger application starts and installs the debugger to the device (graphics) correctly, but when trying to Launch the application to debug it shows this message
This application failed to start because it could not find or load the Qt platform plugin "xcb" in "". Available platform plugins are:
eglfs, linuxfb, minimal, minimalegl, offscreen, xcb. Reinstalling the
application may fix this problem. Aborted (core dump)
The application starts fine as standalone but starting with Linux GD.
I have seen lot of posts relating to xcb but could not find any answer relating to starting application using Nvidia linux graphics debugger
nvidia drivers I am using 378
os-ubuntu 16.04
Nvidia liniux graphics debugger 2.0
Qt opengl context
I had the same issue, and solved it by changing the LD_LIBRARY_PATH to the Qt installation path (on the launch environment options)
LD_LIBRARY_PATH=<some_dir>/Qt/5.7/gcc_64/lib

How to make self-contained or java-bundled JavaFX application package for ARM

Where could I acquire a working copy of compiled JavaFX app bundled with JRE so I could execute this app on ARM linux?
or
How can I create my JavaFX app + JRE bundle that would work on ARM Linux
Best case scenario for me would be to be ableto create copy-paste enabled folder tree or single executable file..
I do understand that this question might be too vague, but I desperately need some help on this. I have spent more than 6 evenings + 2 nights searching how to get a compiled JavaFX application ( .jar file) to run on ARM linux on UDOO (RPi2-like) board.
I have been more of an .NET guy a long time, and now I had to make WPF-like rich UX app that would run on this specific hardware, and I chose JavaFX due to its likeliness to WPF. It does run fine on my desktop PCs but I absolutely can not get it to run on ARM linux.
I am trying to do this too. Did you get it working? My solution is to package the JAR using tools provided by IntelliJ or any other IDE, include the JRE in a folder within the app, then write a script that invokes the JAR from the included JRE like:
lib/jre/bin/java -jar runthis.jar
I also tried it for two days now but didn't get it to work.
I use maven in combination with the javafx-maven-plugin to build native installers of an application.
At first I got the error, that the javafx-ant.jar tools are missing:
[ERROR] Failed to execute goal build-jar(create-jfxjar) on project foo:
Execution create-jfxjar of goal build-jar failed: Plugin javafx-maven-plugin or
one of its dependencies could not be resolved: Could not find artifact
javafx-packager:javafx-packager:jar:1.8.0 at specified path
/opt/jdk1.8.0/jre/../lib/ant-javafx.jar
Then I found the ant-javafx.jar in a windows JDK but then another error was reported that linux is not supported with this one. Ok so I downloaded a linux JDK and used that ant-javafx.jar. Now it could build and create a *.deb file successfully!
However when I started the installer it failed with a message and when checking the log (/var/log/apt/term.log)
Log started: 2021-04-29 00:40:01
dpkg: Error creating archive
/home/pi/Foo/target/jfx/native/foo.deb (--unpack):
package architecture (amd64) does not match system (armhf)
Then I did research and found the following mailing list entry:
[...] the Java Packager isn’t shipped with any ARM builds that I’m aware of. Currently it is only for X86 Windows, Linux and Mac. [...]
This basically explains it: The packager doesn't work on ARM for now. Maybe we should write the guy to encurage him to add it...
=> So for now I work with the jar directly.

Compiling a Linux program for ARM architecture - running on a host OS

I have a ARM Coretex-A8 development board from Freescale (i.MX53) running Linux Ubuntu. It boots up just fine and I can access the system with mouse/keyboard/terminal.
To get started I would like to make an application running on the board inside the host OS, just as you do when you run application on your PC.
My problem is to compile my test program, using toolchains like YAGARTO which is based on gcc i end up in trouble with the linking bacause I have not defined any startup script.
I find lot of information on building "bare metal" configurations (inluding compiling the kernel and make load and link scripts), but not anything usefull for making a application running on a host OS.
My development environment is running on Windows 7. I also have the option to run on Linux X86, but i doubt this whould help me making ARM applications.
For ARM-Linux application development the preferable choice is a Linux Host(x86) machine with a ARM toolchain installed in it. In Ubuntu Desktop machine you can use the following command to install ARM toolchain:
apt-get install gcc-arm-linux-gnueabi
After toolchain installation you can use the following command for cross compilation:
gcc-arm-linux-gnueabi-gcc -o hello hello.c
Using this toolchain you can cross-compile your C program using Standard C library without the need of startup code. Applications can be cross-compiled at your Host Linux(x86) platform and run on Target Linux(ARM) platform.
Windows version of ARM-Linux Toolchain is also available. You can get it from here.
Linaro Developers Wiki - an open organization focused on improving Linux on ARM, will be a good reference for your work.

Running and debugging Qt App on Symbian^1 (5800XM)

I have a problem with running Qt app on my 5800.
I've installed Qt SDK 1.1.2(As I found it's only SDK version which support Symbian ^1) and compiled sample project using Symbian Toolchain. I use Qt 4.7.3 for Symbian. I've installe AppTRK and CODA on my target phone.
After compiling I tried to run on my phone. Application has been successfully installed on target but it is can't be runned. I don't know why. Same problem occurs when I use "Create Smart Installer package from projects properties.
After this I've installed Remote Compiler. And the remote compiler's package works fine on my phone. On remote compiler I've also used Qt 4.7.3
What the problem? Why I can't run self-compiled package on my phone?
Host: Linux Mint(Katya)
Target: Symbian ^1 5th Edition(Nokia 5800 XpressMusic)
Qt version: 4.7.3 for Symbian
Here is output after running app using installed on host Qt 4.7.3 and CODA:
Connecting to 192.168.1.23:65029... Connected. Launching: myapp.exe
Launch failed: Command answer [command error], 1 values(s) to request:
'C|4|Processes|start|""|"myapp.exe"|[""]|[]|true'
#0 {"Code":-1,Format="Failed to create the process (verify that the executable and all required DLLs have been transferred) (item not
found)"} Error: 'Failed to create the process (verify that the
executable and all required DLLs have been transferred) (item not
found)' Code: -1 Finished.
I think CODA doesn't work if TRK is installed.
Symbian^1 is now called S60v5 in the QtSDK and it's only available via online installer or SDKMaintainanceTool.

Resources