Ubuntu16.04安裝opencv3.4.0,錯誤解決,卸載方法

 

今天在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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章