前言
之前一直用的opencv 好好的,今天安裝了anaconda之后,python中的opencv不能用了,即便是拷貝cv2.so之后也是不能用,問題如下:
根本原因
安裝anaconda之后,很多默認的編譯器都變成了anaconda自帶的了,比如python和gcc等。那么系統中的python安裝的東西自然是用不了的,剛開始沒發現這個問題,一怒之下就把opencv給卸載了,當發現這個問題的時候,已經悔之晚矣,無奈重新安裝。
注:opencv編譯失敗之后,其前面肯定有失敗報錯的地方,也就是解決問題和核心了,如上圖中最后報錯“Makefile:160: recipe for target ‘all’ failed”無法鎖定問題在那兒,往上翻番看就能發現問題的原因,在繼續解決就行了。
解決方案
通過一股查找之后,在博主(
https://stackoverflow.com/questions/40322301/compile-opencv-3-on-ubuntu-16-04-linking-error-usr-lib-x86-64-linux-gnu-libsox)中找到答案。
兩種方式:
第一種方法:
增加 -D WITH_OPENMP=ON
第二種方法
從系統變量中刪除Anaconda路徑
sudo gedit ~/.bashrc
注釋掉如下兩行
#export PATH="/home/lab/SOFT_APP/Anaconda2/bin:$PATH" #export PATH="/home/lab/SOFT_APP/Anaconda2/bin:$PATH"
立即生效:
source ~/.bashrc
此時在編譯即可。
Anaconda該怎么使用
有些同學可能會問刪除了Anaconda的環境變量之后怎么用,其實直接在Anaconda的目錄下就可以使用:
bin/conda info -e source bin/activate tf_v0.12.0rc0 source bin/deactivate
同樣可以使用
另:
添加cmake參數:
-DENABLE_PRECOMPILED_HEADERS=OFF
-DBUILD_TESTS=OFF