今天在ubuntu16.04上安裝opencv3.4.0,用cmake .命令進行編譯時,遇到一個錯誤卡了很久
現在正在等待編譯,順便記錄一下opencv的安裝過程和遇到的錯誤
一、安裝
1、方法一:在python環境下,直接用pip安裝即可:
pip install opencv-python
2、方法二:自己編譯
1)下載opencv安裝包,並解壓至指定目錄
sudo wget https://github.com/Itseez/opencv/archive/3.4.0.zip
sudo unzip opencv-3.4.0.zip
2) 安裝依賴庫
sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev
3)cmake
cd opencv-3.4.0
mkdir build
cd build
sudo apt-get install cmake
cmake ../ #在build目錄下執行
遇到的第一個錯誤:
參考其他人的方法,有人在opencv目錄下編譯,有人在build下編譯。
在opencv目錄下運行cmake時,報錯如下:
CMake Error at CMakeLists.txt:11 (message):
FATAL: In-source builds are not allowed.
You should create a separate directory for build files.
-- Configuring incomplete, errors occurred!
在build下運行cmake:報錯如下:
CMake Error: The source directory "/home/wangxueru/Downloads/opencv-3.4.0/build" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
解決方法1:
如果之前編譯過,重新編譯時會報這個錯,把cmakecache.txt刪了再編譯就可
解決方法2:
# 在build下編譯
cmake ../ # 編譯時路徑中需要含有CMakeLists.txt,所以在build中編譯,但是設爲上層目錄
# 其實,我也不知道我是怎麼誤打誤撞通過的。。。。。
當然這個方法也要先刪除cmakecache.txt
4)make
#同樣在build目錄下
sudo make -j8
sudo make install -j8 # opencv默認編譯到/usr/local,可以通過 make DESTDIR=path install指定安裝目錄
遇到的第二個bug:
真的大佬們都不怎麼出錯,我每次配環境都會遇到各種各樣奇葩的問題,emmmm....該反思一下了
遇到這個問題的原因是,電腦快沒電了,但是我不知道,輸完make -j8之後就開開心心歡天喜地蹦蹦跳跳地下樓喫飯
回來之後就傻眼了,電腦關機了,而我根本不知道之前的命令有沒有跑完
重新輸入make install 或 make時就出現了下面的錯誤:
CMakeFiles/opencv_perf_imgproc.dir/perf/perf_resize.cpp.o: file not recognized: File truncated
collect2: error: ld returned 1 exit status
modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/build.make:1038: recipe for target 'bin/opencv_perf_imgproc' failed
make[2]: *** [bin/opencv_perf_imgproc] Error 1
CMakeFiles/Makefile2:2290: recipe for target 'modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/all' failed
make[1]: *** [modules/imgproc/CMakeFiles/opencv_perf_imgproc.dir/all] Error 2
百度說,file not recognized: File truncated大意是不能識別文件,因爲文件被截斷。
解決:
方法一:make clean,重新編譯
方法二:ccache -C ,進入Makefile所在目錄,清除緩存(apt-get install ccache)
方法三:重新解壓、編譯。(emmmm...不要猶豫了,菜雞更適合用這個)
5) 通過查看opencv版本測試是否安裝成功
$ pkg-config --modversion opencv
6)配置環境
$ sudo vi /etc/ld.so.conf.d/opencv.conf # 將opencv庫添加至系統路徑
在文件末尾添加如下命令,保存並退出:
/usr/local/lib
在shell中執行如下命令使得剛纔的配置路徑生效:
sudo ldconfig
配置bashrc環境
$ sudo vi /etc/bash.bashrc
在文件末尾添加下面兩行命令,保存並退出:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
在shell中執行如下命令使配置生效:
$ source /etc/bash.bashrc
$ sudo updatedb
7)運行一個小程序,如果打開了攝像頭,並且在左上角有一個hello opencv標誌即表示opencv配置成功 :
cd opencv-3.4.0/smaples/cpp/example_cmake
cmake .
make
./opencv_example
二、卸載
https://blog.csdn.net/weixin_42652125/article/details/81238508
寫於:19-07-22