MacOS 10.12 升级日记

2017.4.23   当时的环境时  macos 10.11 + xcode7+cuda7.5 

          iPhone6已经升级到最高版本iOS10.3  所以想写iOS的东西目前的Xcode已经过时了,要升级到Xcode8,但是Xcode8需要 macOS10.12。然后我接下来就不断的更新。

 

        先升级macOS到10.12  ,然后直接在App Store下载了最新的Xcode8.3.2。估计要重新下载安装最新版本cuda8.0.61 。

        安装好cuda后,发现基于cuda 的opencv 也要重新编译安装。下载opencv 编译安装with_CUDA 需要CLT7.3, cuda8的NVCC不支持CLT8.3.2好崩溃啊! 那好 我就重新编译吧!    

        编译opencv会出现系统库的错误,估计CLT7.3已经不能适应最新macOS10.12了,只能用CLT8了。怎么办,难道cuda8.0.61不能在Mac上用了吗?我觉得不可能啊。查看一下cuda文档说明,看到,目前cuda已经支持到Xcode8.2了,所以只要xcode降级到8.2就可以了。  重新下载8.2安装,重新编译opencvwith_cuda。OK !  xcode8.2不能编译最新的iOS10.3,所以要保留两个Xcode了!

 

 

编译安装OPENCV一点说明:

with_qt with_ipp  with_cuda   with_avfoundation         without_qtkit  without_quicktime  without_ffmpeg  without_v4l   without_vtk without_gstreamer

qt5是通过brew 安装并且是keg-only外部无法直接找到他,需要手动添加路径,在cmake里设置 CMAKE_PREFIX_PATH=,如果出现C++11错误提示,要设置cmake CXX compiler flag   添加 -std=c++11字段。

 

更新一下CUDNN, 下载后 直接将 include 和lib里的文件拷到 /usr/local/下

 

更新torch

torch7 先./clean.sh一下  删除之前编译的文件   然后更新库 ./update.sh  直接重新编译安装 很方便 。 记得确认./update.sh里面要先指定TORCH_LUA_VERSION=LUA52  ./install.sh   否则安装的是luajit,导致内存不足的问题!  卸载torch很简单,就把整个文件夹删掉就好了  rm -rf ~/torch7

 

安装 caffe2

需要protobuf, 但是一开始用brew安装的不支持,就从GitHub上下载3.0.0版本源码 编译安装

protobuf安装过程    比较简单,进入protobuf的工程文件夹, ./autogen.sh      ->   ./configure      ->   make     ->  make install

会在/usr/local/bin/protoc   生成protobuf compiler ,  查看版本 protoc --version

 

然后 可以安装 NNPACK  & pthreadpool,也可以不安装 

cmake  USE里  设置 取消勾选一些无法使用的库

然后 generate   ->  make  ->sudo make install

 

========================血泪分割线================================

说说10.12系统里的python的故事

一开始系统自带了一个python2.7.10的小朋友,这个小朋友挺好系统自带的,但是后来莫名其妙我通过brew安装了一个python2.7.13,还带个小伙伴pip。 这个pip在/usr/local/lib/python/2.7/site-packages 建立了个小仓库专门给python2.7.13用。

后来发现这个混乱啊 两个python 小朋友总是打架。 头疼!!!!

准备删掉brew的。留下系统自带的!  但是没有小伙伴pip,python2.7.10不好管理他的小物品。只好给他装一个小伙伴。python get-pip.py ,如果之前前装过会在/Library/Python/2.7/site-packages 留下痕迹,需要手动删掉 再按装。

 

进入python , from caffe2.python import core  测试看看安装是否成功

一看会出现两个.so 文件 动态链接库的问题。dlopen() 找不到 @rpath/CUDA.framework  

明明有/Library/Frameworks/CUDA.framework  这个库

那好我就用 install_name_tool -change @rpath/CUDA.framework..    /Library/Frameworks/CUDA.framework   .../.../XXX.so

改称链接绝对路径

成功!

==================================================================

 

 

-----------------------------------------------------苦难的分割线-------------------------------------------------------------

为了研究代码怎么能少了jupyter notebook。  废话少说  pip install jupyter       咣! error   什么 code 1错误  查了下  code错误代码 没权限。

什么鬼?升级一下 setuptools ,咣!又是错误没权限? 开 root少废话  sudo su - root   ! 日 ,还是没权限,一查要关SIP,坑嗲的苹果! 关吧! 进入安全模式 开机+ CMD+R  

进入终端  输入 cdrutil disable   。 重启电脑   (没有权限的文件可以通过 终端  chflags nouchg /XX 来关闭?   查看权限 ls -lOe)

开机关了SIP! 有权限了,升级下pip install --upgrade setuptools  ,日 什么certifi不对! pip install certifi    还不对! 怎么回事?

 

easy_install -U setuptools  用easy_install试试 成功了,  pip install ez_setup   成功!  pip install jupyter 成功!

---------------------------------------------------------------------------------------------------------------------------------------

 

 

发现jupyter-notebook 跑caffe2会有问题,但是终端开python单独跑不会,崩溃报告显示,caffe2链接的leveldb库会调用gperltools的libtcmalloc.dylib时崩掉。不知道具体什么原因。很奇怪只有当在notebook下跑时会崩,caffe2只能在python下单独跑了!

转载于:https://www.cnblogs.com/changkaizhao/p/6760985.html

你可能感兴趣的:(MacOS 10.12 升级日记)