I am developing a qml application using QtCreator which must be run and debugged over a remote linux machine. The application must be run over eglfs platfrom and hence remote machine does not have X or wayland running.
The GUI must be displayed over the remote machine display and not to be forwarded over ssh tunnel to the local machine.
How can I make it done?
QtCreator 9.0.0
Qt 5.15.2
Both remote and local machines run Linux.
If I don't set any specific settings in QtCreator, by running the application, I get
Starting /home/pi/app/app --platform eglfs on RaspberryPi...
Cannot create window: no screens available
and if set enable checkbox Forward to local display in Project > Run settings, I'll get the app running on the local display over eglfs platform which I don't want to.
Related
** I am not a Linux expert.
I have spun a Debian 10 VM in GCP which i need to access like in a GUI mode and be able to download and install some required applications for development and experiment purposes.
I think i have installed xrdp, display GUI packages, firefox, apache2 etc, but not able to land into GUI mode or browser mode.
1- I can't invoke/run firefox with "Display" error - Error: no DISPLAY environment variable specified
2- RDP from my local laptop also being refused with "connection refused" error.
Need some help.
I've been setting up remote debugging for an embedded Linux target. I've tested that I have the correct combination of gdbserver running on the target and gdb client running on my workstation. I can start the server and on the workstation side run:
(gdb) target remote 10.28.22.226:2345
and I can list source and step just fine.
In Qt Creator I have configured a device. In that window I specify the GDB server executable: gdbserver (see pic).
I also configure the cross debugger in the 'Build & Run' Debuggers tab as shown below:
In this case, I have manually started the gdbserver with my executable on the target with port 2345. To start debugging with Qt Creator, I choose the Debug->Start Debugging->Attach to running Debug server pulldown menu. It gives me the prompt shown below, where I enter the server port (2345). I give it the appropriate kit and local executable (copy of the executable on the remote target).
After I hit OK, it seems to run the gdb client locally with a few commands, then times out trying to communicate with the gdbserver. I have debug logging turned on with the server, so I know the server never sees anything from the client run from Qt Creator. Additionally, I did Window->Views->Debugger Log to help me get a better idea of what was going on. The log shows the correct IP address and port for my device, but I don't see anything that looks like a 'target remote IP:port' call.
I'm looking for a hint or reference here. I seem to be a bit stuck at the moment. Thanks!
EDIT: additional information - I've verified that my gdb client has support for python compiled in. I see that Qt Creator requires python support. I also have further support that nothing ever goes out on the wire from Qt Creator. I did a wireshark capture and don't see anything going to port 2345 on the target.
Alternately, if anyone would share their Qt Creator debugger-log output with me so I can compare, that would be helpful.
Avoid Qt Creator 4.5-beta1. It seems 4.5RC1 doesn't have this problem. I was able to do remote debugging using the method described above just fine.
Even QtCreator 4.5.0 seems to have the same bug.
The only workaround I've found is to start the GDB server manually on the remote target: with "top" I get the pid of the remote process to debug then I run the following command: gdbserver --attach remote ip:remote port pid.
After the server is listening, I finally choose: "Attach to Running Debug" server".
Maybe you can write a server start script on target which include the above statement...
I'am trying to debug the qt application which i made and placed on VmWare. I followed this guide https://www.vmware.com/support/ws5/doc/ws_devices_serial_host_app_to_vm.html
https://www.vmware.com/support/ws5/doc/ws_devices_serial_advanced_example_debugging.html
I have the 'cdb' debugger installed so my vmware shared pipe is \\.\pipe\com_1 i'm running the cdb with arguments: cdb -server npipe:pipe=\\.\pipe\com_1 -v C:\tests\clean_deploy\app.exe on the Virtual Machine. I'am assuming that cdb will use the \\.\pipe\com_1 to listen for the connections. On my OS(Windows 7) i run the qt->debugging->attach to remote cdb session and set the connection string like this npipe:server=server,pipe=\\.\pipe\com_1
And i get in qt log:
Debugging Started
Debugging Finished
Without anything.
How do you debug an application on the vmware with cdb server using external pipe, from the qt cdb enviroment ??
I have a Centos 6.4 (minimal) system configured like a “NAS drive.”
I would like to design a Linux based terminal application on my Window laptop, then build/run it from my “NAS Drive.” It is annoying to keep switching to Putty, running the build script then testing the program itself!
The source code is stored/edited over a Samba share so everything’s already in the right place.
Is there a c++ editor for Windows that can build/run the application with the touch of a button (F9)? Or a batch script or something for Windows that automates a series of SSH commands?
If I was in your shoes, I'd use eclipse with cdt and cygwin.
I am on windows XP want to build the programs on linux remote pc
i have eclipse Ganymede, CDT, RSE installed on remote machine... but how to configure all this?
am I doing correct? could anybody suggest
You could access your remote machine using VNC or similar remote desktop infrastructures. That would allow you to work with Eclipse (edit, build, run, debug, etc) as you would in your local machine.
If bandwidth is too narrow or you don't manage the Linux box, you could access via SSH or telnet and work in console mode (with Emacs/Vim, gdb and all that stuff).
Take a look at https://github.com/ericwoodruff/rmake you would configure your IDE and edit code locally but it uses rsync to build on the remote machine. I've used it at HP to build C++ programs across multiple platforms, linux->windows, windows->linux. It works in the command line and I've used an eclipse builder to invoke it as well. If you enable --no-decorate Eclipse can even parse the build output into the problems view.