I have the same problem in a package I am developing. The solution that I
came up with is similar to:
cd("/opt/intel/ipp/lib/") do
dlopen("libipps")
end
w/ this inside an init function (although I call ccall, not dlopen). And
with hooks to set the directory. Seems to work ok.
Bob
On Thu, Jul 3, 2014 at 9:36 AM, Jameson Nash <[email protected]> wrote:
> The output of otool appears to indicate that it is built such that it can
> only be loaded by changing the working directory (because of ./). This is
> not advisable from a package distribution standpoint, but we see that this
> is what Intel did, unfortunately. I think you could use install_name_tool
> from Xcode to edit it
>
> I have some thoughts for improving this in 0.4.
>
>
> On Thursday, July 3, 2014, Jay Kickliter <[email protected]> wrote:
>
>> I misspoke, here's the output of tool:
>>
>> $ otool -L /opt/intel/ipp/lib/libipps.dylib
>> /opt/intel/ipp/lib/libipps.dylib:
>> ./libipps-8.1.dylib (compatibility version 8.1.0, current version 8.1.0)
>> ./libippcore-8.1.dylib (compatibility version 8.1.0, current version
>> 8.1.0)
>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
>> version 169.3.0)
>>
>>
>> I can load both libippcore and libSystem when I start Julia from ~/, but
>> I have to cd( "/opt/intel/ipp/lib" ) in order to to open libipps:
>>
>> julia> DL_LOAD_PATH
>> 5-element Array{Union(ASCIIString,UTF8String),1}:
>> "@executable_path/../lib/julia"
>> "@executable_path/../lib"
>> "/opt/local/bin"
>> "/opt/intel/lib/intel64"
>> "/opt/intel/ipp/lib"
>>
>> julia> dlopen("libSystem.B")
>> Ptr{Void} @0x00007fe7ee2a7070
>>
>> julia> dlopen("libippcore")
>> Ptr{Void} @0x00007fe7ee011160
>>
>> julia> dlopen("libipps")
>> ERROR: could not load module libipps: dlopen(libipps.dylib, 1): image not
>> found
>> in dlopen at c.jl:19
>>
>> julia> cd( "/opt/intel/ipp/lib/" )
>>
>> julia> dlopen("libipps")
>> Ptr{Void} @0x00007fe7ea69cc10
>>
>> I've exhausted my limited troubleshooting skills in this area. Any
>> suggestions?
>>
>> I forgot to mention that IPP is Intel Integrated Performance Primitives.
>>
>> On Thursday, July 3, 2014 7:30:44 AM UTC-6, Jay Kickliter wrote:
>>>
>>> I'm trying to open libipps.dylib in OS X. If I push the path to
>>> DL_LOAD_PATH, Julia can't find it. But if I cd() to that path, it loads it
>>> fine. The weird thing is that it can find libippcore.dylib just fine with
>>> without having to cd() to the libraries' location.
>>>
>>> Here's what I tried:
>>>
>>> julia> push!( DL_LOAD_PATH, "/opt/intel/ipp/lib" )
>>> 4-element Array{Union(ASCIIString,UTF8String),1}:
>>> "@executable_path/../lib/julia"
>>> "@executable_path/../lib"
>>> "/opt/local/lib"
>>> "/opt/intel/ipp/lib"
>>>
>>> julia> dlopen( "libipps" )
>>> ERROR: could not load module libipps: dlopen(libipps.dylib, 1): image
>>> not found
>>> in dlopen at c.jl:19
>>>
>>> julia> cd( "/opt/intel/ipp/lib" )
>>>
>>> julia> dlopen( "libipps" )
>>> Ptr{Void} @0x00007fc5aad99330
>>>
>>> Am I making a rookie mistake? I tried first loading the two other
>>> libraries that libipps depends on. I could't only get one of them to load
>>> (libippcore).
>>>
>>