Showing results for 
Search instead for 
Did you mean: 

Distribute my application on Linux

I'm trying to distribute my application, but Im having problems in linux,
First problem of all was if I run my program in old Linux distributions (or not updated), I had problems with the libstdc++ library (GLIB simbols cant be found)... I've included the one used in the computer that compiled the program on my app folder and that errors dissapeard.
Now, if I run my app in another pc that its not the same where its compiled, it returns an "segmentation fault". If I try to "ldd" my application, the same behaviour appears.
The LD_LIBRARY_PATH points to the folder of the executable and:
stdc++ lib that its used in the compilation computer
mkl files used in the compilation computer
in general, all the files that appears directyl doing "ldd" to my application on the compilation computer
... but "segmentation fault" stills remains, also doing "ldd" to my application.
What is the best manner of distributing an application in linux? How do I distribute mkl? Which libraries should I add to the installation program? I've already read the article "Redistributing application binaries build with 11.x Intel Compiler Professional Editions for Linux"
Thanks in advance!
icc & ifortran 12.0.2
0 Kudos
1 Reply
Black Belt

It's usually best to compile on the oldest distro you intend to support, then test as well with compatibility libraries installed in the newest distro you intend to support. Major linux distros supposedly commit to ability to support at least 2 major versions of glibc this way. Beyond that, your assurance of success may not be satisfactory; you might also see problems running on distros where some use LSB standard organization and others violate LSB.
If you distribute the redistributable library package which corresponds to your compiler (you should be able to download from you should have full freedom to use any combination of static and dynamic linked libraries.
A seg fault when running on a different computer could be as simple as a discrepancy in stack limit setting. I'd be surprised if ldd returns a seg fault (not sure if that's what you mean).