On 30-04-2009, at 04:39, Allin Cottrell wrote:
On Wed, 29 Apr 2009, Henrique wrote:
> I still can't use Gretl (build 2009-04-28). When I double click on
> Gretl's icon the system gives me:
>
> Dyld Error Message:
> Library not loaded: /usr/local/lib/libgmp.3.dylib
> Referenced from:
> /Applications/Gretl.app/Contents/Resources/bin/../lib/
> libgretl-1.0.0.dylib
> Reason: image not found
OK, let's try one more time. I thought we could get rid of
DYLD_LIBRARY_PATH, but I guess not yet. There's a new build:
You can get rid of it. This page was helpful for me:
www.cocoadev.com/index.pl?ApplicationLinking
But all references to dynamic libraries (not only those in an
executable) have to be modified with the @executable_path thing.
So if libgretl uses libgmp then that reference too must be changed to
use @executable_path.
Also references in all .so files will have to be changed.
It took some experimenting to get it all working but I think the
script at the end of this message will do the job of modifying all
references to "private" dylib's into references with @executable_path.
The script must be run in the directory where the Gretl.app resides.
Change the environment variables SRCPATH as appropriate.
Berend
Script starts here:
TOOL=install_name_tool
GRETLRES=Gretl.app/Contents/Resources
SRCPATH=/Users/berendhasselman/tmp/gretl-i386/lib
# path to dylib relative to path of executable
# executable here is the thing in directory bin
# I hope!
DSTPATH=@executable_path/../lib
# change install name of libraries
$TOOL -id ${DSTPATH}/libgretl-1.0.0.dylib ${GRETLRES}/lib/
libgretl-1.0.0.dylib
$TOOL -id ${DSTPATH}/libgmp.3.4.4.dylib ${GRETLRES}/lib/libgmp.
3.dylib
$TOOL -id ${DSTPATH}/libmpfr.1.1.2.dylib ${GRETLRES}/lib/libmpfr.
1.dylib
# change copied install names
$TOOL -change ${SRCPATH}/libgretl-1.0.0.dylib ${DSTPATH}/
libgretl-1.0.0.dylib \
${GRETLRES}/bin/gretl_x11
$TOOL -change ${SRCPATH}/libgmp.3.dylib ${DSTPATH}/libgmp.3.dylib \
${GRETLRES}/bin/gretl_x11
$TOOL -change ${SRCPATH}/libgretl-1.0.0.dylib ${DSTPATH}/
libgretl-1.0.0.dylib \
${GRETLRES}/bin/gretlcli
$TOOL -change ${SRCPATH}/libgmp.3.dylib ${DSTPATH}/libgmp.3.dylib \
${GRETLRES}/bin/gretlcli
$TOOL -change ${SRCPATH}/libgmp.3.dylib ${DSTPATH}/libgmp.3.dylib \
${GRETLRES}/lib/libgretl-1.0.0.dylib
$TOOL -change ${SRCPATH}/libgmp.3.dylib ${DSTPATH}/libgmp.3.dylib \
${GRETLRES}/lib/libmpfr.1.1.2.dylib
for d in ${GRETLRES}/lib/gretl-gtk2/*.so
do
$TOOL -change ${SRCPATH}/libgmp.3.dylib ${DSTPATH}/libgmp.
3.dylib $d
$TOOL -change ${SRCPATH}/libgretl-1.0.0.dylib ${DSTPATH}/
libgretl-1.0.0.dylib $d
done
d=${GRETLRES}/lib/gretl-gtk2/mp_ols.so
$TOOL -change ${SRCPATH}/libmpfr.1.dylib ${DSTPATH}/libmpfr.1.dylib $d