Image package
Thomas Treichl
Thomas.Treichl at gmx.net
Fri Dec 5 15:31:10 CST 2008
Robert Fong-tom schrieb:
>
> On Dec 4, 2008, at 3:11 AM, Thomas Treichl wrote:
>
>> Robert Fong-tom schrieb:
>>> On Dec 3, 2008, at 4:23 PM, Thomas Treichl wrote:
>>>> Søren Hauberg schrieb:
>>>>> ons, 03 12 2008 kl. 12:57 -0500, skrev Robert Fong-tom:
>>>>>> On Dec 3, 2008, at 2:57 AM, Søren Hauberg wrote:
>>>>>>
>>>>>>> tir, 02 12 2008 kl. 21:03 -0500, skrev Robert Fong-tom:
>>>>>>>> Yes I see the headers. In MacPorts they appear to be in /opt/local/
>>>>>>>> include/ImageMagick. There are also a ton of other files in the
>>>>>>>> "include" directory which may be the includes for the dependencies.
>>>>>>> So, what does the following commands print if you run the from the
>>>>>>> terminal
>>>>>>>
>>>>>>> Magick++-config --cppflags
>>>>>> I get the following: -I/opt/local/include/ImageMagick
>>>>>>> Magick++-config --ldflags
>>>>>> I get the following: -L/opt/local/lib -L/opt/local/lib
>>>>>> -L/usr/X11R6/ lib -L/opt/local/lib -lfreetype -lz
>>>>>> -Wl,-framework,CoreServices -Wl,- framework,ApplicationServices
>>>>>> -L/opt/local/lib
>>>>>>> ? Also try to run the from Octave using the 'system' command, i.e.
>>>>>>>
>>>>>>> system ("Magick++-config --cppflags")
>>>>>> I get the following:
>>>>>> -I/Applications/Octave.app/Contents/Resources/ include/ImageMagick
>>>>>> ans = 0
>>>>>>> system ("Magick++-config --ldflags")
>>>>>> I get: -L/Applications/Octave.app/Contents/Resources/lib -L/usr/
>>>>>> X11R6/lib
>>>>>> ans = 0
>>>>> Okay, I'm confused. When you run 'Magick++-config --cppflags' from the
>>>>> terminal you get the right path to the header files, but when you run
>>>>> the command from within Octave, you get the wrong path to the header
>>>>> files. Is that right? If so, then I guess this means you have to set
>>>>> some environment variable before starting Octave. I don't even know
>>>>> how
>>>>> to start Octave on a Mac, so I doubt I'll be able to help you. Perhaps
>>>>> we have some Mac-experts on the list, that are able to say something
>>>>> smart?
>>>>> Søren
>>>>
>>>> There must be installed two different versions of ImageMagick in two
>>>> different locations. Otherwise the system command shouldn't produce
>>>> a different result. The first one is in /opt/local/bin that comes
>>>> with MacPorts, please check from Terminal.app
>>>>
>>>> ~$ which Magick++-config
>>> I get : /opt/local/bin/Magick++-config
>>>> ~$ Magick++-config --version
>>> I get: 6.4.6 Q16
>>>>
>>>> The other one must have been installed manually because I currently
>>>> don't pack ImageMagick/GraphicsMagick into the stable Octave.app
>>>> 3.0.x versions. And the return argument of the system command from
>>>> above is strange. Please check in Octave.app
>>>>
>>>> octave-3.0.3> system ("which Magick++-config")
>>> I get: /Applications/Octave.app/Contents/Resources/bin/Magick++-config
>>> ans = 0
>>>> octave-3.0.3> system ("Magick++-config --version")
>>> I get: 6.4.6 Q16
>>> ans = 0
>>>>
>>>> What I've found out some time ago is that the sources of ImageMagick
>>>> have been changed from 5.x.x to 6.x.x. I am not able to find out
>>>> which version of ImageMagick should be used to correctly install the
>>>> Octave-Forge package image-1.0.8.tar.gz.
>>>>
>>>> Regards,
>>>>
>>>> Thomas
>>> You are right about there being two version. Before using MacPorts to
>>> port ImageMagick, I made the mistake of installing it manually from
>>> the ImageMagick ftp site using the UNIX installation instructions.
>>> This did not work with Octave, so I renamed all the ImageMagick
>>> directories/files I could find (but did not delete them just in
>>> case). I guess there must be some statement in the Octave set-up that
>>> is incorrect. Do you know how to fix this?
>>
>> I think I don't know exactly what you mean here, but if you need a
>> fresh unmodified Octave.app without a 'Magick++-config' program in
>>
>> /Applications/Octave.app/Contents/Resources/bin/Magick++-config
>>
>> then why not just moving Octave.app into trash and then install it again?
>>
>> Regards,
>>
>> Thomas
>
> I blew away Octave.app and reinstalled, and now Octave seem to be
> getting the location of ImageMagick correctly. However I still am having
> problems installing the Image package. The error messages I get now are:
> 1) /usr/bin/ld: warning can't open dynamic library:
> /tmp/dependencies-i386/lib/libz.1.dylib referenced from:
> /Applications/Octave.app/Contents/Resources/lib/octave-3.0.3/liboctinterp.dylib
> (checking for undefined symbols may be affected) (No such file or
> directory, errno = 2)
> /usr/bin/ld: Undefined symbols:
> _CloneImageInfo
> _DestroyImageInfo
> _GetExceptionInfo
> _ReadImage
In the file 'src/Makefile' of the package image-1.0.8.tar.gz it is not enough to
get back the --cppflags and --ldflags from Magick++-config. At least on a Mac
(but I expect this won't make any difference on Linux, too) it is necessary to
get back --libs, otherwise the installation of image-1.0.8 fails because of the
linker error Bob reported before.
I changed the following line in 'src/Makefile'
__magick_read__.oct: __magick_read__.cc
$(MKOCTFILE) $< `Magick++-config --cppflags` `Magick++-config --ldflags`
into
__magick_read__.oct: __magick_read__.cc
$(MKOCTFILE) $< `Magick++-config --cppflags --ldflags --libs`
and then was able to successfully install image-1.0.8.tar.gz in Octave.app, too.
Bob, I send you a modified package offside any mailing-list. Please try to
install that one instead and report back if this works for you so that we can
think about making a modification in the sources.
Regards,
Thomas
More information about the Help-octave
mailing list