QProcess unexpectedly finished
-
I just realied that every time I build and run there is always a notification like this :
15:25:54: Starting /home/krist/qt_proj/build-try_qprocess1-Desktop-Debug/try_qprocess1 ... 15:25:58: The program has unexpectedly finished. 15:25:58: The process was ended forcefully. 15:25:58: /home/krist/qt_proj/build-try_qprocess1-Desktop-Debug/try_qprocess1 crashed.
Is it the error that you looking for?
-
@krist said in QProcess unexpectedly finished:
Is it the error that you looking for?
It's not me looking for errors here, it's you :-)
15:25:58: The program has unexpectedly finished.
No, this tells us nothing. We need more information. Run your app with a debugger (F5), it will show you where the crash occurs.
-
You've commented out the
on_pushButton_clicked()
slot, so it's not crashing. -
Does it crash when you click the button? The screenshot does not show any crash.
-
@krist
I can see by enlarging your image that you are still not supplying the correct path for the subprocess. Nor does it even have the executable you wish to run. There is no point telling us here your code contains a certain string if it does not actually use that string. You need to understand the absolute basics about paths if you expect to develop code....Further, you should read the
QProcess
documentation and e.g. both check return results anderrorOccurred
slot if you are having trouble running a process and expect to get error status back. -
@krist said in QProcess unexpectedly finished:
I use the path based on projects analogClock
No, you don't. The screenshot (of your code running the
QProcess
) shows a path which is simply incorrect. Whether you've changed that since screenshot I cannot say. -
@krist
Then you need to use something in your code which is actually the same as that, not what your screen shot has which is simply not the same!
Hint:/home/krist/Qt5.13.2/Examples/Qt-5.13.2/gui/build-analogclock-Desktop_Qt_5_13_2_GCC_64bit-Debug/analogclock
.
Which you seem to have had at one point, and then changed to something wrong. -
yeah i have tried that and error is come up
here is the error/home/krist/Qt5.13.2/Examples/Qt-5.13.2/gui/build-analogclock-Desktop_Qt_5_13_2_GCC_64bit-Debug/analogclock: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.13' not found (required by /home/krist/Qt5.13.2/Examples/Qt-5.13.2/gui/build-analogclock-Desktop_Qt_5_13_2_GCC_64bit-Debug/analogclock)
-
@krist said in QProcess unexpectedly finished:
yeah i have tried that and error is come up
here is the error/home/krist/Qt5.13.2/Examples/Qt-5.13.2/gui/build-analogclock-Desktop_Qt_5_13_2_GCC_64bit-Debug/analogclock: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.13' not found (required by /home/krist/Qt5.13.2/Examples/Qt-5.13.2/gui/build-analogclock-Desktop_Qt_5_13_2_GCC_64bit-Debug/analogclock)
That's where
LD_LIBRARY_PATH
comes in ;-) You can set it with https://doc.qt.io/qt-5/qprocess.html#setProcessEnvironment -
@krist
OK, let's start from there! That path is correct, so let's not change off that!Now you have some issue of not finding the correct Qt version.
Are you Linux? Did you build your own Qt, or did you accept the one supplied with the distro? Have you installed more than one version of Qt at some point?
Ah, I see @sierdzio is pointing you at what you can look at.... I will leave you in his capable hands :)
-
@sierdzio
ok
so right now the problem lies on my install qt right?
where should i source that environment?
is it to my workable analogclock?env.insert("TMPDIR", "C:\\MyApp\\temp"); // Add an environment variable
@JonB
yeah i'm using linux and have 2 qt (one with ros plugin and the others only for qt)
tahnk you so much for your help!!! -
@krist said in QProcess unexpectedly finished:
@sierdzio
ok
so right now the problem lies on my install qt right?No. You simply have compiled AnalogClock using Qt incompatible with the one installed in the system. It's not an error, it's not a problem. Its actually quite common thing. Try double-cliking on your analogclock binary file - it will probably fail to run, too.
The proper way to solve it is to deploy AnalogClock so that it runs on your system without any changes to paths.
where should i source that environment?
is it to my workable analogclock?env.insert("TMPDIR", "C:\\MyApp\\temp"); // Add an environment variable
You need to add
LD_LIBRARY_PATH
and point it to your Qt 5.13.2 installation directory - where libraries are located. So something like:env.insert("LD_LIBRARY_PATH", "/home/krist/qt/Qt5.13.2/gcc_64/lib/");
That needs to be fed to your QProcess so that the system can find proper Qt libraries when running Analog Clock example.
The reason why it runs from Qt Creator is that Qt Creator sets
LD_LIBRARY_PATH
automatically. -
No worries, happy coding :-)
-
@krist
Hi there. I just wanted to say: if I was too harsh on you here and your other posting which I see you have now deleted, I would not want you to be put off asking questions in this forum! You are entitled to ask whatever you like, this is a friendly & helpful forum. I am just grumpy :)So don't be put off by me. Just please put some attention to detail in your work. When coding, you have to get every character correct, it's no use seeing something to try and then not copying the correct stuff and changing it to something else. That's all.
So no intention to upset you, best of luck. :)