LDD on My Deployed Application
-
Hi all, I'm trying to create a installer to my application, and at moment I'm trying to build a debian package.
So, when I try to make, I got some erros, with library on executable file.When I run the LDD on myy application I got this:
@
dvl@ubuntu:~/Desktop/debian/inove-bevsat-1.0.0$ ldd InoveBEVSAT
linux-gate.so.1 => (0xb7779000)
libQtWebKit.so.4 => /opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib/libQtWebKit.so.4 (0xb61e6000)
libQtSvg.so.4 => /opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib/libQtSvg.so.4 (0xb618e000)
libQtSql.so.4 => /opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib/libQtSql.so.4 (0xb614d000)
libQtGui.so.4 => /opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib/libQtGui.so.4 (0xb562a000)
libQtCore.so.4 => /opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib/libQtCore.so.4 (0xb5343000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb5315000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb5230000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb5211000)
@Why some libraries is the /opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib ? It's a kind of error?
How to fix it? -
When you compiled your application, you linked it against shared libraries of your version of Qt which is installed in /opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib. There is something called RPATH that tells the dynamic linker where to look for the speficied libraries. What you want to do is to use an utility like "PatchELF":http://nixos.org/patchelf.html that will allow you to replace /opt/QtSDK/Desktop/Qt/4.8.1/gcc/lib/libQtWebKit.so.4 by a simpler libQtWebKit.so.4.
Those libraries will be looked for in the default library paths, read the manpage for ld if you need more information about that. -
Also, read "this":http://www.qtcentre.org/wiki/index.php?title=Deploying_Qt_Applications#Linux.