XCode关于OpenCV + OpenCL + OpenMP的配置

配置项目

OpenCL是CUDA的替代品,能够利用GPU执行OpenCV的图形的大量计算;而OpenMP时开放多核编程语言,本质上还是利用CPU

OpenCV

  • 利用Homebrew安装opencv(C++)

brew install opencv

  • 安装的过程中,brew就已经自动执行cmake将opencv包编译好了,所以所有的动态库文件都在/usr/local/Cellar/opencv/4.2.0_1/lib路径下

  • 创建一个XCode项目,选择command line,然后将Search Paths下的两个头文件和库文件搜索路径填好

    • Header Search Paths = '/usr/local/include/opencv4'
    • Library Search Paths = '/usr/local/Cellar/opencv/4.2.0_1/lib'
  • 之后就要将动态库文件全部链接进项目中,找到Build Phases,然后将opencv文件夹里的lib中的所有动态库文件添加进去即可。
    ⚠️ 在链接库文件时,一定要将原本的lib文件夹copy一份,然后链接这个复制后的文件夹里的库文件!!!

OpenCL

这里要说明一下,安装的时候一定要注意不同的设备所支持的OpenCL版本,目前所有苹果设备支持的最高版本为1.2。同时Apple内置了OpenCL的包,所以只需要在Build Phases中将OpenCL链接进去就可以。

OpenMP

网上暂时还没有详细且有效的配置教程,这里就说一下其中一个教程的做法

  • 利用Homebrew安装llvm

brew install llvm

  • 然后像配置OpenCV一样,将Search Paths下的两个搜索路径填好
    • Hearder Search Paths = '/usr/local/Cellar/llvm/9.0.1/lib/clang/9.0.1/include'
    • Library Search Paths = '/usr/local/Cellar/llvm/9.0.1/lib/clang/9.0.1/lib'
  • 接下来配置参数
    image1
  • 然后创建一个名为CC的User变量
    image2
    image3
  • 创建软链接

ln -s /usr/local/opt/llvm/bin/clang /usr/local/bin/clang-omp ln -s /usr/local/opt/llvm/bin/clang++ /usr/local/bin/clang++-omp

  • 全局搜索,找出libiomp5.dylib库文件,然后将其复制并粘贴到/usr/local/lib/libiomp5.dylib路径下,一定要粘贴到这里,不然无法使用
  • 最后在XCode项目里将这个库文件链接进去理论上就可以了

⚠️ 但是最后,一顿操作猛如虎,运行的时候报出了一堆错误,OpenMP还是用不了,而且网上也找不到别的详细的教程了,太坑了。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!