Unsolved Problem in Deploying and Running Application on Ubuntu.
-
@Girishkuniyal
Make sure there is no space after=
sign:LD_LIBRARY_PATH=$PWD/Qt_Libraries
Try printing
LD_LIBRARY_PATH
usingecho
-
@p3c0 Now it shows the path of Qt_LIbraries
/home/gman/soduku-solver deploy/Qt_Libraries -
@Girishkuniyal
In your code I see a lots of hardcoded paths. Are you sure those are all present on the deployment machine ? -
Yes but how to manage this hardcoded path when we are sending my application to another pc. @p3c0
-
@Girishkuniyal If they are just images then put them inside resource files which then automatically gets embedded into your app's binary after compilation.
But for now first make sure these paths are not causing the seg fault. I didnt check all the files. -
can I remove this statements from our code like
QPixmap qpic("/home/torrent/build-soduku-solver-Desktop_Qt_5_7_0_GCC_64bit-Debug/images/brain.png");
after removing this i could get errors -
@Girishkuniyal Dont remove that whole line just replace the paths with existing paths present on deployment machine. For eg. you can keep these images inside your deployment folder i.e where your binary is present.
-
should i create another directory named resources under soduku-solver deploy folder and place all graphic image under it? and gives that path in our code with respect to binary. @p3c0
-
@Girishkuniyal No problem for now. But remember using Qt's Resource system in the future to avoid cross deployment problems.
-
@Girishkuniyal You could also check using
strace
to check what files are being opened and that they are found. Try this:
strace -e open yourbinary
-
-
@Girishkuniyal No.. Run it on your binary and not your script. Put that inside your shell script.
-
Now Output is http://paste.ubuntu.com/23202346/ @p3c0
-
@Girishkuniyal I had said to put it inside your script because you set
LD_LIBRARY_PATH
there. Due to this you can see the binary was not able to resolve the Qt library paths.
Anyway if you decide to run it directly make sure you exportLD_LIBRARY_PATH
on the terminal just before running thestrace
. This will make sure the library path is set.
Paste that output.
i.e whatever you do inside the script, run that directly on the terminal line by line except the first line#!/bin/sh
-
Now The Output is http://paste.ubuntu.com/23202369/
-
Something is wrong. It should have printed all the
open
calls on the terminal like it printed as seen in the last screenshot that you posted. Can you check again whats wrong? -
are you know . I am running all this in my virtual machine different from development machine? @p3c0
-
@Girishkuniyal It doesn't matter if your deployment machine is a virtual machine or a physical machine as long as the application requirements are satisfied.
-
Now what to do ? where is the problem ? @p3c0
Please help me to deploy this app. -
@Girishkuniyal Did you replace all hardcoded paths with paths present on deployment system and test ?