看看英特尔性能库对Mac OS 的支持
如何利用Mac OS Xcode 开发英特尔® IPP 程序
自从英特尔和苹果合作以来,英特尔的软件也少不了开始支持Mac OS. 英特尔® IPP从5.1版本开始支持Mac OS。 那如何利用Mac OS xcode 开发IPP 程序呢?一般说来, 你有
操作系统: Mac OS *
编译器:Intel® C++ Compiler 10.0 and GNU Compiler Collection (GCC) 4.0 in Xcode 2.4
IPP 库:Intel® IPP for Mac OS 5.2
就很容易开发出基于IPP 的应用程序。
假设你已经在Xcode开发环境中建立好了你的项目, 在其中一个*.c 源文件里调用一个IPP 函数, 如ippiimagejaehne_8u_c1r(产生一个jaehne的8位的灰度图像)
从Xcode的菜单中点击项目»编辑项目设置。
选择Build标签。
1.选择Header搜索路径领域和类型。
/Library/Frameworks/Intel_IPP.framework/Headers
2. 选择libarary搜索路径领域和类型。
/Library/Frameworks/Intel_IPP.framework/Libraries
3. 选择Other Linker标志和类型,加入需要连接的IPP库。
如果是动态链接,一般需要连接的IPP库:
-lippi –lipps - lippcore - lguide
如果是静态链接,一般需要连接的IPP库::
- lippiemerged - lippimerged - lippsemerged - lippsmerged /Library/Frameworks/intel_ipp.framework /library/ libippcore.a
如果您已经安装了英特尔®编译器,阅读它的用户指南,以便在Xcode的集成开发环境中选择英特尔编译器。
注:如果您使用的是动态连接,您需要加上动态库的路径到系统的环境变量,以便你的应用程序能找到他们。
从Xcode的菜单中点击项目»编辑可执行文件。
选择Arguments标签。
在Variable标签点击[ + ]按钮,
在Name 栏里键入dyld_library_path 。
在Value栏里键入/Library/Frameworks/Intel_IPP.framework/Libraries
如果你用的是命令行或Makefile,
无论动态和静态连接,假设你在源文件test.c中调用图像处理功能ippiimagejaehne_8u_c1R 。
首先设
ipproot =/Library/Frameworks/Intel_IPP.framework/
如果是动态链接,
用英特尔C++编译的命令行如下:
icc test.c -I/$(IPPROOT)/Headers -L/$(IPPROOT)/Libraries -lippi -lippcore -lguide -o test
如果是用GCC的话,命令行类似:
gcc test.c -I/$(IPPROOT)/Headers -L/$(IPPROOT)/Libraries -lippi -lippcore -lguide -o test
注:如果您使用的是动态连接,在运行你的应用程序前,你需要加上动态库的路径到系统的环境。你可以在命令行窗口,运行
32位: source /$(IPPROOT)/Versions/5.2/ia32/tools/env/ippvars.sh
64位: source /$(IPPROOT)/Versions/5.2/em64t/tools/env/ippvarsemm64t.sh
如果是静态连接:
用英特尔C++编译的命令行如下:
icc test.c -I/$(IPPROOT)/Headers -L/$(IPPROOT)/Libraries -lippiemerged -lippimerged -lippsemerged -lippsmerged /$(IPPROOT)/Libraries/libippcore.a -o test
如果是用GCC的话,命令行类似:
gcc test.c -I/$(IPPROOT)/Headers -L/$(IPPROOT)/Libraries -lippiemerged -lippimerged -lippsemerged -lippsmerged /$(IPPROOT)/Libraries/libippcore.a -o test
注:英特尔® IPP将所有静态和动态库都安装在同一个目录下,如果他们有重名,如libippcore.a 和 libippcore.dylib,并且命令行是-lippcore,标准连接器将首先选择了动态库。要解决这个问题,你可以链接到静态库用全路径和图书馆的名称所示,在上面的例子。