MacOS 10.12 升级日记

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

          iPhone6已经升级到最高版本iOS10.3  因此想写iOS的东西目前的Xcode已通过时了,要升级到Xcode8,可是Xcode8须要 macOS10.12。而后我接下来就不断的更新。c++

 

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

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

        编译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一点说明:python2.7

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=<brew qt path (/usr/local/opt/qt)>,若是出现C++11错误提示,要设置cmake CXX compiler flag   添加 -std=c++11字段。ui

 

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

 

更新torchspa

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下单独跑了!

相关文章
相关标签/搜索