按照官方说明,最好使用空的/usr/local文件夹。但是我已经安装过一些软件,没法用空的local,只能慢慢踩坑。这里纪录出现过的一些报错,以供其他人参考。
1.brew tap homebrew/science命令报错
提示说这个库被遗弃,这个我通过看其他人的博客解决,可以忽略。
2.提示编译需要C++11
这个其他博客中也有,需要再makefile中连个语句加上-std=c++11,差不多这句话。
3.提示opencv,openblas没有找到
这个需要在makefile.config文件的第97,98行INCLUDE_DIRS := LIBRARY_DIRS := 后面加上你需要添加的库,一个加include文件夹位置,一个加lib文件夹位置
4.报错提示undefined symbols for architecture x86_64 “cv::…” referenced from “…”
这个百度以后发现可能是因为库缺失后者库冲突,我安装了opencv3和4,尝试将makefile.config文件的第97,98行中opencv的lib和include文件放在系统库的前面,这个问题消失了。
5.提示openblas库没有加载
报错如下:
dyld: Library not loaded: /usr/local/opt/openblas/lib/libopenblasp-r0.3.7.dylib
Referenced from: /usr/local/opt/opencv@3/lib/libopencv_core.3.4.dylib
Reason: image not found
由于我安装了两个版本的openblas,可能是这个导致的冲突,我将opt文件中的openblas换成0.3.7版本的,还是报错,说opencv3没有找到openblas,这说明openblas是opencv的依赖库,然后我用brew删除了openblas,更新opencv3,这次opencv3安装了0.3.9版本的openblas,报错消失。
安装软件需要一些基本的计算机知识,这些知识很少用到,但是不知道的话安装软件就完全不知道怎么解决异常。安装软件从来都是绝对短板,几次想问别人,又想在问别人前尽量百度,正好通过类似例子猜到问题原因,后面就好解决了。看到绿色的RUN OK,简直感动哭了。