Ticket #15716 (closed defect: fixed)
octave-image 1.0.6 - Build error - ld: library not found for -lMagick
| Reported by: | alakazam@… | Owned by: | andrea.damore@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 1.6.0 |
| Keywords: | octave image | Cc: | jsnodgra@…, ryandesign@… |
| Port: |
Description
octave-image fails to build when executing
mkoctfile __magick_read__.cc `Magick++-config --cppflags` -lMagick++ -lMagick
and generates the following error :
ld: library not found for -lMagick
I am attaching a full debug log. I have ImageMagick @6.4.1-6_0+q16 and jpeg @6b_2 installed.
I think it should also have a dependency on ImageMagick, and maybe jpeg, according to dependencies specified on http://octave.sourceforge.net/image/index.html :
buildrequires: jpeg-devel
systemrequirements: ImageMagick
Attachments
Change History
comment:1 Changed 5 years ago by blb@…
- Cc jsnodgra@… added; andrea.damore@… removed
- Owner changed from macports-tickets@… to andrea.damore@…
Cc reporter of dup #15985.
comment:2 Changed 5 years ago by andrea.damore@…
- Status changed from new to assigned
Hi, I notice build phase is broken here too but I had octave-image installed, I wonder if latest system updates broke something.
About your points:
- I can't find jpeg-devel, I think it's just the "jpeg" macport
- I see macports' ImageMagick provides only libMagick++ , I have libMagick.dylib in /usr/local so I'm assuming it's not a system default, is it?
comment:3 Changed 5 years ago by alakazam@…
I can't find jpeg-devel, I think it's just the "jpeg" macport
I agree, and was in fact suggesting that the octave-image port might need to depend on the jpeg port :
I think it should also have a dependency on ImageMagick, and maybe jpeg
I have libMagick.dylib in /usr/local
/usr/local/lib/libMagick.dylib does not exist on my system.
I think the only "libMagick*" files on my system are in /opt/local/bin/.
comment:4 Changed 5 years ago by andrea.damore@…
Do you have libMagick.dylib at all?
My ImageMagick port doesn't provide them, only libMagic++.* and I think that to link with -lMagick you'll need libMagick.dylib, right?
comment:5 Changed 5 years ago by alakazam@…
Indeed, I have libMagick++.dylib, libMagickCore.dylib, and libMagickWand.dylib, but not libMagick.dylib.
comment:6 Changed 5 years ago by andrea.damore@…
I'm not sure how to proceed, seems that libMagick.dylib is needed by the package but the ImageMagick portfile doesn't provide it, so using a "file dependency" is useless as it need a <port> name to install in case the dependency isn't satisfied and there is no such a portfile...
comment:7 Changed 5 years ago by alakazam@…
I don't really know how ImageMagick works, so I'm not sure how to proceed with this ; maybe it is possible to make the ImageMagick port install the necessary files ; maybe the necessary library functions are provided by other files in the ImageMagick package, and patching octave-image would solve the problem. I suggest contacting the ImageMagick port's maintainer, Ryan Schmidt, who might know what files to link against in replacement of libMagick.dylib / if it is better to adapt the ImageMagick port.
comment:8 Changed 5 years ago by ryandesign@…
- Cc ryandesign@… added
libMagick was renamed to libMagickCore as of ImageMagick 6.3.8-5. Rather than hardcoding the name of the ImageMagick core library, software should use Magick-config or the ImageMagick.pc pkg-config file to determine the name of the ImageMagick core library. See the ImageMagick ChangeLog entry for 6.3.8-5.
comment:9 Changed 5 years ago by andrea.damore@…
alakazam try the portfile and patch in svn, I changed -lMagick with Magick-config, you should be at least able to go through the building process without errors even if I can see many lines like: mkoctfile: no way to compile C++ file xxxxxxx.cc and so there is some problem with c++ mkoctfile building.
comment:10 Changed 5 years ago by alakazam@…
I have compiled the latest svn}}-based {{{octave-image Portfile successfully (non-debug mode) and haven't encountered any problems. I have run quick tests of the basic functions, and they seem to work (imread, imwrite, im2double, etc.). So I guess this works for me, thanks for the fix !
comment:11 Changed 5 years ago by andrea.damore@…
- Status changed from assigned to closed
- Resolution set to fixed
Fixed, I will report to octave-image's author(s).

