How to Compile and Distruite your application
-
Perhaps you might want to test with a vanilla copy of the Linux distribution your client has with virtualizaion software such as VirtualBox.
-
See "this thread":http://qt-project.org/forums/viewthread/1872
For me it works perfectly both on linux x86 and arm architectures. -
Sure!
I'm testing in my Virtual Machine!
Ow good... I think I found the problem... 64bits!
I compile in 64bits and trying to run on 32bits...Return of comand file InoveSATBEV:
InoveSATBV: setuid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.4, BuildID[sha1]=0x0277d22e5789d5b31dd3e18ec41948e9d078fe21, not stripped -
OK compiled in 32bits, and works fine on 64bits!
But When I copy the application to another computer, I got this message:./InoveSATBV: error while loading shared libraries: libqextserialport-1.2.so.1: cannot open shared object file: No such file or directory
-
[quote author="dcbasso" date="1344085828"]Can I embed this ".so" file in my binary?[/quote]
Yes if you build libqextserialport as static library.
[quote author="dcbasso" date="1344085378"]./InoveSATBV: error while loading shared libraries: libqextserialport-1.2.so.1: cannot open shared object file: No such file or directory[/quote]
Well, did you build libqextserialport yourself, or did you installed as part as your linux libraries packages ?
What is the result of
@
ldd InoveSATBV
@command on client machine ?
-
I fix the problem using a runner to my application.
I don't really like my solution:@
#!/bin/sh
export LD_LIBRARY_PATH=.
./appname $*
@See: http://www.qtcentre.org/wiki/index.php?title=Deploying_Qt_Applications
Static library? I will search for this "resource".