If I'm reading the error message correctly, when libopencv_videoio was
built, it incorrectly specified it's path as a relative location to the
current working directory. Accordingly, you need to chdir("/usr/local") to
be able to use this library or use `install_name_tool` to fix the internal
name of the library and/or relink everything.On Tue, May 5, 2015 at 2:42 PM Max Suster <[email protected]> wrote: > > I realize that it might be useful to include the code for the error I > observed, so here it is. > All .dylib libraries are listed by pkg-config in the terminal and work > with XCode. > > This works > julia> lib = "/usr/local/lib/libopencv_core" > "/usr/local/lib/libopencv_core" > > julia> Libdl.dlopen(lib, Libdl.RTLD_GLOBAL) > Ptr{Void} @0x00007fd4ad333de0 > > This does NOT work > julia> lib = "/usr/local/lib/libopencv_highgui" > "/usr/local/lib/libopencv_highgui" > > julia> Libdl.dlopen(lib, Libdl.RTLD_GLOBAL) > ERROR: could not load module /usr/local/lib/libopencv_highgui: > dlopen(/usr/local/lib/libopencv_highgui.dylib, 9): Library not loaded: > lib/libopencv_videoio.3.0.dylib > > Referenced from: /usr/local/lib/libopencv_highgui.dylib > Reason: image not found > in dlopen at ./libdl.jl:33 > > I will be grateful for any tips on what is going on. > > > On Tuesday, May 5, 2015 at 5:33:10 PM UTC+2, Max Suster wrote: >> >> >> When trying to load 8 shared .dylibs from my OpenCV.jl package on the >> most recent v0.4-dev (OSX 10.10.3), I got an error indicating that dlopen_e >> and dlopen are deprecated. So I added the Libdl. to each, and tried again. >> >> >> Now it seems that only the core library, libopencv-core.dylib, can be >> loaded but not the rest. I also tried adding the libs path to Julia, and >> cd to /usr/local/lib which contains the libraries, but still I can not load >> the libs. >> >> The error I get is "Image can not be found, see Lidl.jl line 33". The >> libs are properly compiled - pkg-config lists all of them and they work >> when linked to my C++ OpenCV projects in Xcode. >> >> Any thoughts on why dlopen is not working this way? Thanks in advance. >> >>
