I've problems with installing Imagemagick on OSX 2.8
[before installing ImageMagick i edited the .info file with --enable shared]
I posted this mesage before and got a reaction from Dave, but it didn't bring me further in installing the lib.
ibtool: install: warning: relinking `libMagick++.la'
*** Warning: linker path does not have real file for library -lstdc++.
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libstdc++ and none of the candidates passed a file format test
*** using a file magic. Last file checked: /usr/lib//gcc/darwin/default/libstdc++.a
*** Warning: linker path does not have real file for library -lgcc.
*** I have the capability to make that library automatically link in when
*** you link to this library. But I can only do this if you have a
*** shared version of the library, which you do not appear to have
*** because I did check the linker path looking for a file starting
*** with libgcc and none of the candidates passed a file format test
*** using a file magic. Last file checked: /usr/lib//gcc/darwin/default/libgcc.a
*** The inter-library dependencies that have been dropped here will be
*** automatically added whenever a program is linked with this library
*** or is declared to -dlopen it.
g++ -r -Wl,-bind_at_load -keep_private_externs -nostdlib -o .libs/libMagick++-5.5.6-Q16.0.0.0.dylib-master.o .libs/Blob.o .libs/BlobRef.o .libs/CoderInfo.o .libs/Color.o .libs/Drawable.o .libs/Exception.o .libs/Functions.o .libs/Geometry.o .libs/Image.o .libs/ImageRef.o .libs/Montage.o .libs/Options.o .libs/Pixels.o .libs/STL.o .libs/Thread.o .libs/TypeMetric.o && g++ -dynamiclib -flat_namespace -undefined suppress -o .libs/libMagick++-5.5.6-Q16.0.0.0.dylib .libs/libMagick++-5.5.6-Q16.0.0.0.dylib-master.o -L/sw/lib -L/usr/X11R6/lib /sw/lib/libMagick.dylib -L/usr/lib/gcc/darwin/3.3 -L/usr/lib/gcc/darwin -L/usr/libexec/gcc/darwin/ppc/3.3/../../.. -lSystem -install_name /sw/lib/libMagick++-5.5.6-Q16.0.dylib -compatibility_version 1 -current_version 1.0
g++: /sw/lib/libMagick.dylib: No such file or directory
libtool: install: error: relink `libMagick++.la' with the above command before installing it
make[4]: *** [install-libLTLIBRARIES] Error 1
make[3]: *** [install-am] Error 2
make[2]: *** [install-recursive] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [install-recursive] Error 1
### execution of make failed, exit code 2
Failed: installing imagemagick-5.5.6-12 failed
[okaras:/sw] sara# pico /sw/fink/10.2-gcc3.3/unstable/main/finkinfo/graphics/imagemagick-5.5.6-12.info
I think there's something wrong with the way the libs are linked. [or unable to link] and i found the following lines in the FAQ of gcc:
In the faq they kind of give some solution how to do the --enable-shared, but with the feeling: 'you could do it, but you'd better don't, plus the fact that i've no idea which 'option' and how execute. The explanation below sound rather vague to me.
This is the full faq:
*Dynamic linker is unable to find GCC libraries*
This problem manifests itself by programs not finding shared libraries they depend on when the programs are started. Note this problem often manifests itself with failures in the libio/libstdc++ tests after configuring with --enable-shared and building GCC.
GCC does not specify a runpath so that the dynamic linker can find dynamic libraries at runtime.
The short explanation is that if you always pass a -R option to the linker, then your programs become dependent on directories which may be NFS mounted, and programs may hang unnecessarily when an NFS server goes down.
The problem is not programs that do require the directories; those programs are going to hang no matter what you do. The problem is programs that do not require the directories.
SunOS effectively always passed a -R option for every -L option; this was a bad idea, and so it was removed for Solaris. We should not recreate it.
However, if you feel you really need such an option to be passed automatically to the linker, you may add it to the gcc specs file. This file can be found in the same directory that contains cc1 (run |gcc -print-prog-name=cc1| to find it). You may add linker flags such as |-R| or |-rpath|, depending on platform and linker, to the |*link| or |*lib| specs.
Another alternative is to install a wrapper script around gcc, g++ or ld that adds the appropriate directory to the environment variable |LD_RUN_PATH| or equivalent (again, it's platform-dependent).
Yet another option, that works on a few platforms, is to hard-code the full pathname of the library into its soname. This can only be accomplished by modifying the appropriate .ml file within libstdc++/config (and also libg++/config, if you are building libg++), so that |$(libdir)/| appears just before the library name in |-soname| or |-h| options.
And; the libary,'Imagemagick', i try to install via Fink.
1. add links to gcc specs file. I find a section called: *link and *lib. Does anyone know i should add the linker flag -R or -rpath?
2. Install a wrapper around gcc?
3. To hard-code full pathname of library into its soname. If i'm installing Imagemagick via Fink, is this still possible for me to do?
And if all of this isn't an option for some reason, is it easier to install Imagemagick by source and add linkerflags when i configure the library? And, do i have to copy the libary to the /sw directory of Fink or is there another way to do this?
Thanks in advance for answering..
Sara
------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click _______________________________________________ Fink-beginners mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/fink-beginners
