XCode集成OpenCV遇到的问题以及踩坑
-
下载opencv
brew install opencv下载完成的目录在 : /usr/local/Cellar/opencv
这里下载有可能会很慢, 多尝试几次, 或者可以尝试换一个下载源:
cd "$(brew --repo)" git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile source ~/.bash_profile下载完成后, 目录结构是这样的:
-
打开XCode新建项目
-
选择CPP
- 选择一个位置就OK了
- 新建完成之后,点击运行,出现打印结果就表示OK了
- 配置
Header Search Paths
这里注意版本,我opencv是4.8.1,请填写自己的版本
- 配置
Library Search Paths
- 新建组,将opencv的引用导入进来
- 添加opencv的引用
- 使用快捷键,找到opencv lib目录
-
command + A全部选中,导入引用
如果libopencv下有了这些文件,说明导入成果
注意: 这里导入的是引用, 实际上在`libopencv文件夹`中并没有任何东西
这个文件夹也不能删除, 一旦删除,就会删除 将 /usr/local/Cellar/opencv/4.8.0_1/lib删除,这里是一个大坑!!!
至此,opev就集成进来了!
但是当运行的时候会报错: 说什么没有签名之类的
'/usr/local/lib/libopencv_ml.4.8.0.dylib' (code signature in <7695E2FD-2610-3BB5-930E-DD0D80A878BF> '/usr/local/Cellar/opencv/4.8.0_1/lib/libopencv_ml.4.8.0.dylib' not valid for use in process: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.), '/usr/lib/libopencv_ml.4.8.0.dylib' (no such file, not in dyld cache)
运行报错:
此时打开你的钥匙串:
先找到一个有效的证书:
如果钥匙串里面没东西,自行百度弄一个
然后给需要签名的dylib文件,通过你的证书签名
codesign -f -s "你的证书" /usr/local/lib/*.dylib
最后写一段代码再次运行:
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace std;
using namespace cv;
int main(int argc, const char * argv[]) {
// insert code here...
cout << "Hello, World!\n";
// // insert code here...
Mat image;
image = imread("/Users/shizhenjiang/Desktop/emoji_2.png");
namedWindow("Image", WINDOW_AUTOSIZE);
imshow("Image", image);
cout << "完成了!"<< endl;;
waitKey(0);
return 0;
}
终于可以开开心心的学习opencv了!!
参考链接: