On Wed, May 29, 2013 at 12:10 PM, William Hounslow <hounslow@users.sourceforge.net> wrote:
>
> I was hoping to use make-build to create a monolithic binary I could then just drop into the cgi-bin directory. It failed thus:
>
> error while loading shared libraries: libecl.so.13.4: cannot open shared object file: No such file or directory
>
> Can a truly standalone program be created? If not, how to ensure that the end user can deploy the output binary in a location of their choice?

As an alternative, you may be able to set the environment variable LD_LIBRARY_PATH on Linux (or something similar on your OS) to locate libraries; e.g. if this is a Linux/Apache combo, in your <Directory> section, you may be able to add something like this…

<Directory /cgi-bin>
   SetEnv LD_LIBRARY_PATH /var/www/cgi-lib/
    ...
</Directory>
… with the appropriate directory, of course.

With Gnu LD, you may also be able to hard-code a preferred RPath into the executable file itself using the LD flag like -rpath=/var/www/cgi-lib — you may be able to pass this via the ASDF:MAKE-BUILD :LD-FLAGS … ?

By the by, … how are you trying to run asdf:make-build? Did you in fact call it with :MONOLITHIC T or :TYPE :PROGRAM?
(I'm sure someone far better versed in the ECL side of things may be able to help better, but that does seem to be the first thing necessary. :-) )


> Thanks in advance,
>
> William