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