源码编译OPENCV C++版本 linux

源码编译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
)


在这里插入图片描述

发布了140 篇原创文章 · 获赞 26 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/CLOUD_J/article/details/102661364