文章目录
源码编译OPENCV C++版本 linux
Tips 1 下载 OPENCV
git clone https://github.com/opencv/opencv
git clone https://github.com/opencv/opencv
Tips 2 创建build文件夹
cd opencv
mkdir build
cd build
Tips 3 Cmake编译
注意:一般编译过程会有两个文件比较难下载,最好提前下载下来,这里参考Error2,Error4先解决再走下面流程。
其中CMAKE_INSTALL_PREFIX代表你的安装路径
-D BUILD_opencv_python3配置是否安装python版的。
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=../../OpenCV \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_opencv_python3=OFF \
-D BUILD_opencv_python2=OFF \
OPENCV_GENERATE_PKGCONFIG=YES ..
Tips 4 make安装
j4代表用几个CPU加速
make -j12
#long time ...
make install
Tips 5 环境变量
vim ~/.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/menglingjun/software/opencv/lib64/pkgconfig
export PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/menglingjun/software/opencv/lib64/
source ~/.bashrc
测试版本信息
pkg-config --modversion opencv
Error1 Cmake3找不到
-D WITH_CUBLAS=ON ..
-- The CXX compiler identification is GNU 5.5.0
-- The C compiler identification is GNU 5.5.0
-- Check for working CXX compiler: /usr/local/gcc/bin/g++
-- Check for working CXX compiler: /usr/local/gcc/bin/g++ -- broken
CMake Error at /usr/share/cmake3/Modules/CMakeTestCXXCompiler.cmake:45 (message):
The C++ compiler
"/usr/local/gcc/bin/g++"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: /home/menglingjun/menglingjun/software/opencv-master/build/CMakeFiles/CMakeTmp
Run Build Command:"/usr/bin/gmake" "cmTC_39633/fast"
/usr/bin/gmake -f CMakeFiles/cmTC_39633.dir/build.make CMakeFiles/cmTC_39633.dir/build
gmake[1]: Entering directory `/data/menglingjun/software/opencv-master/build/CMakeFiles/CMakeTmp'
/bin/sh: /usr/bin/cmake3: No such file or directory
gmake[1]: *** [CMakeFiles/cmTC_39633.dir/testCXXCompiler.cxx.o] Error 127
gmake[1]: Leaving directory `/data/menglingjun/software/opencv-master/build/CMakeFiles/CMakeTmp'
gmake: *** [cmTC_39633/fast] Error 2
CMake will not be able to correctly generate this project.
关注这里/bin/sh: /usr/bin/cmake3: No such file or directory
我查看了一下/usr/bin/下有cmake,查一下cmake版本(cmake --version)发现cmake是3版本,我觉得这个cmake就是3,所以创建一个软链(副本)
ln -s cmake cmake3
我这里就ok了,如果你有别的问题,百度其他地方把。
Error2 ippicv下载失败问题
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
IPPICV: Download failed: 28;"Timeout was reached"
For details please refer to the download log file:
/home/menglingjun/menglingjun/software/opencv-master/build/CMakeDownloadLog.txt
离线下载
链接:https://pan.baidu.com/s/1f6x2-S-XHKr8K0qv5inKIg&shfl=sharepset
提取码:s9mz
复制这段内容后打开百度网盘手机App,操作更方便哦
存到一个目录下,随意
/home/menglingjun/menglingjun/software
# 打开终端,输入
vim ~/menglingjun/software/opencv-master/3rdparty/ippicv/ippicv.cmake #就是这个文件的路径
# 将47行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}ippicv/"
# 改为步骤1中手动下载的文件的本地路径(也就是将网络下载的模式改为本地文件下载的模式):
"file: /home/menglingjun/menglingjun/software/opencv-master" #(仅供参考,根据自己的路径填写)
Error3 fatal error: sys/videoio.h: No such file or directory
Cmake时把这个加上
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/module
Error4 face_landmark_model.dat下载失败问题
百度云下载地址,失效请评论提醒我更新:
链接:https://pan.baidu.com/s/1uhIDqIbMuIawrE6mXuSrnA&shfl=sharepset
提取码:re72
复制这段内容后打开百度网盘手机App,操作更方便哦
找到/opencv_contrib/modules/face下面的CMakeLists.txt文件并打开,如下,修改红色标注的网站,改为本地目录(你需要提前下载好存在这个目录下),如下所示。
ocv_download(
FILENAME face_landmark_model.dat
HASH ${__file_hash}
URL
"${OPENCV_FACE_ALIGNMENT_URL}"
"$ENV{OPENCV_FACE_ALIGNMENT_URL}"
"file:/home/menglingjun/menglingjun/software/opencv_contrib/"
DESTINATION_DIR "${CMAKE_BINARY_DIR}/${OPENCV_TEST_DATA_INSTALL_PATH}/cv/face/"
ID "data"
RELATIVE_URL
STATUS res
)