Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Linking version 8 IPP with Xcode 4.6

Marshall_H_
Beginner
545 Views

I am developing a Macintosh cocoa (objective c) application using xcode 4.6 and the Apple compilers.  I setup my project to link to the static (.a files ) IPP libraries.   However,  when I run the application, the dynamitic IPP libraries try to load and the application fails to run.

Is there any documentation/example projects on how to build xcode 4.6 with IPP version 8?   What is the standard method for packaging and shipping an application that uses Intel IPP libraries when I distribute my application?

Note: I have found documentation for using xcode 2 and 3 but none for xcode 4.

http://software.intel.com/en-us/articles/intel-integrated-performance-primitives-for-mac-os-how-to-link-to-the-intel-ipp-for-mac-os-x-libraries-in-application

0 Kudos
9 Replies
Gennady_F_Intel
Moderator
545 Views

There is no such article but the pipeline will be the similar. You need take into account that in IPP 8.0 all libraries were renamed: IPP library "_l" and "_t" suffixes removed. A new OS native convention is now implemented: Windows* static libraries now have an "mt" suffix for both single and multi-threaded libraries. Please refer to the Release Note.

0 Kudos
Jan_W_1
Beginner
545 Views

I have the same problem.
When I try to statically link the IPP 8 in xcode 4.6 the application fails and says libippcore-8.0.dylib not loaded.
Before when I was using IPP 7 the application worked correctly. 

What are the steps to statically link to IPP 8 in xcode 4.6? I'm using the following libraries:
libippcore.a
libipps.a
libippvm.a 

I'm using the Apple LLVM 4.2 compiler.
I need to link these libraries without dependencies to other dynamically loaded libraries.

0 Kudos
Sergey_K_Intel
Employee
545 Views

Hi Jan,

Did you set DYLD_LIBRARY_PATH  variable before running the application? Do you have libippcore-8.0.dylib file itself?

Regards,
Sergey 

0 Kudos
Jan_W_1
Beginner
545 Views

Hello Sergey,

Yes I do have the libippcore-8.0.dylib file but why is that file needed for static linking anyway? With version 7 of IPP I just needed link to the static *.a libraries.

I don't want to have to distribute dylib files with the product.

0 Kudos
gpers
Beginner
545 Views

I am seeing this behavior trying to statically link IPP 8.0 from XCode 5. Was this ever resolved?

0 Kudos
Pavel_B_Intel1
Employee
545 Views

Hello,

the best way to link an application with static libraries is point full path+libname in the link string, for example:

g++ -o mytest mytest.cpp -I $IPPROOT/include $IPPROOT/lib/libippi.a $IPPROOT/lib/libipps.a $IPPROOT/lib/libippcore.a

In IPP 8.x we renamed IPP libraries according native OS name convention.

Pavel

0 Kudos
gpers
Beginner
545 Views

From Xcode, I add the libipp*.a files directly from the full path under "Link Binary With Libraries". But when I try to run, I get the error that Library not loaded: ./libippcc-8.0.dylib. Should I be linking a different way?

0 Kudos
Soilworker
Beginner
545 Views

gpers wrote:

From Xcode, I add the libipp*.a files directly from the full path under "Link Binary With Libraries". But when I try to run, I get the error that Library not loaded: ./libippcc-8.0.dylib. Should I be linking a different way?

I'm having this exact issue. I've also tried every possible permutation of path settings for each .a file under Frameworks (absolute, relative to IPP root, IPP lib directory, etc.) No change in behavior - for some reason it's still trying to link dynamically when all I ever want to do is link statically.

I'm running XCode 5.1.1 in OS X 10.9.4 with Intel IPP 8.2. Any help would be greatly appreciated!

0 Kudos
Soilworker
Beginner
545 Views

UPDATE: I got this resolved. This is purely an XCode issue. Because there is no obvious, explicit way to get XCode to ignore all the .dylib files and use the .a files (even though I explicitly added only the .a files in the build steps), I simply added "dylib" folders inside my lib folders, and moved all the dylibs there (so XCode won't see them with recursion disabled.) Voila, problem solved (albeit inelegantly.)

0 Kudos
Reply