三年前的mac到手後一直懶得做更新,主要是因為系統公升級後一些有依賴的軟體都需要更新,有時還挺容易出問題。為了安全穩定起見,osx 10.9系統就被我用了三年。但是,這麼久不更新實在跟不上潮流了,最近想安裝tensorflow,結果我這麼舊的系統被它鄙視並且拒絕了,只好趁著假期把系統更新一下。結果一更新,原來的caffe就用不了,編譯過程出現了些問題,本博文記錄了這些問題和對應的解決方案。
更新後,系統及相關軟體的版本為:
osx 10.12.4 (sierra)
xcode 8.3.2
cuda 8.0.61
cudnn 5.0
matlab2016b
caffe具體的安裝過程見《深度學習框架caffe在mac上的安裝和測試》,這裡使用的是基於anaconda的安裝。xcode和cuda都是最新的,但是編譯caffe的過程中發現cuda 8.0不支援xcode 8.3,報錯為:
nvcc fatal : the version ('80300') of
sudo xcode-select --switch /library/developer/commandlinetools
5, 檢視clang的版本, 為8.0.0
於是使用make重新編譯caffe即可。$ clang --version
.0 (clang-
800.0
.42.1)
-darwin16
.5.0
thread model: posix
installeddir: /library/developer/commandlinetools/usr/bin
執行 make, make test都沒有問題,但是到了make runtest這一步,又出現以下問題:
這個問題的原因是caffe沒有成功連線到anaconda安裝的libhdf5_hl.10.dylib。解決辦法如下:$ make runtest
.build_release/tools/caffe
dyld:
library
notloaded:
@rpath/./libhdf5_hl.10.dylib
referenced
from:.build_release/tools/caffe
reason
: image not found
1, 用otool檢視caffe的連線庫。
可以看到caffe連線到了@rpath/libhdf5_hl.10.dylib 而不是anaconda中的hdf5。$ cd build/tools
$ otool -l caffe | grep rpath
@rpath/libcaffe.so.1.0.0-rc3 (compatibility version
0.0.0, current version
0.0.0)
@rpath/libcudart.8.0.dylib (compatibility version
0.0.0, current version
8.0.61)
@rpath/libcublas.8.0.dylib (compatibility version
0.0.0, current version
8.0.61)
@rpath/libcurand.8.0.dylib (compatibility version
0.0.0, current version
8.0.61)
@rpath/libhdf5_hl.10.dylib (compatibility version
12.0.0, current version
12.0.0)
@rpath/libhdf5.10.dylib (compatibility version
13.0.0, current version
13.0.0)
@rpath/libcudnn.5.dylib (compatibility version
0.0.0, current version
5.0.5)
@rpath/libpython2.7.dylib (compatibility version
2.7.0, current version
2.7.0)
2, 使用install_name_tool -change 重新設定hdf5的連線
3, 對libcaffe.so和test_all.testbin做同樣的修改$ install_name_tool -change "@rpath/libhdf5_hl.10.dylib"
"/users/taigw/anaconda/lib/libhdf5_hl.10.dylib" caffe
install_name_tool -change "@rpath/libhdf5.10.dylib"
"/users/taigw/anaconda/lib/libhdf5.10.dylib" caffe
再次執行make runtest就能通過了。$ cd ../lib
$ otool -l libcaffe.so | grep rpath
$ install_name_tool -change "@rpath/libhdf5.10.dylib"
"/users/taigw/anaconda/lib/libhdf5.10.dylib" libcaffe.so
$ install_name_tool -change "@rpath/libhdf5_hl.10.dylib"
"/users/taigw/anaconda/lib/libhdf5_hl.10.dylib" libcaffe.so
$ cd ../test
$ otool -l test_all.testbin | grep rpath
$ install_name_tool -change "@rpath/libhdf5_hl.10.dylib"
"/users/taigw/anaconda/lib/libhdf5_hl.10.dylib" test_all.testbin
$ install_name_tool -change "@rpath/libhdf5.10.dylib"
"/users/taigw/anaconda/lib/libhdf5.10.dylib" test_all.testbin
之後依次執行make pycaffe和make matcaffe,在make matcaffe完成後在matlab中呼叫caffe時出現了和上面類似的錯誤,說caffe_mexmaci64找不到@rpath/./libhdf5_hl.10.dylib,解決辦法如下:
在caffe安裝的更目錄下,執行:
問題得到順利解決。於是可以在新系統上一邊玩caffe一邊玩tensorflow了。$ cd matlab/+caffe/private/
$ install_name_tool -change "@rpath/libhdf5_hl.10.dylib"
"/users/taigw/anaconda/lib/libhdf5_hl.10.dylib" caffe_.mexmaci64
$ install_name_tool -change "@rpath/libhdf5.10.dylib"
"/users/taigw/anaconda/lib/libhdf5.10.dylib" caffe_.mexmaci64
公升級Sierra系統後一系列破解工具無法使用問題
系統公升級了,也沒啥感覺,就是一系列破解工具打不開了,之前也沒發現是系統的問題,破解不了就算了,可是試用期一到就受不了了。去網上搜了一下,原來是系統的問題,好多大神都推出了解決辦法,真是道高一尺,魔高一丈啊。分享一下經驗跟工具 keygen 系列 special k系列 當然還有autodesk家族...
mac公升級到10 11後重新安裝Cocoapod
由於mac 10.11更改了安全機制,所以cocoapods得安裝和解除安裝命令也有所改變,全新安全功能 rootless,重新創造支援 icloud drive 檔案加密的蘋果應用,以及全新 受信任 wifi 功能。一 全新安裝前,先檢查是否有安裝殘留 1 如果之前裝過cocopods,最好先解除...
解決mac公升級後nginx啟動問題
在mac上安裝了nginx,用起來好好的,後來公升級了下mac,發現很多命令都不能用了,包括之前安裝的node,grunt,nginx等,重新安裝這些之後都好了 但是啟動nginx,出現以下情況 chunbomac lichunbo sudo nginx password dyld library ...