gcc --versiong++ --version


如果安装了anaconda需要先屏蔽掉。 1. 安装CUDA9.0

到NVIDIA官网下载CUDA9.0系统版本的对应的1个主安装包,4个补丁包。 cd到安装包和补丁包所在的文件夹 。

sudo sh cuda_9.0.176_384.81_linux.run
sudo sh cuda_9.0.176_384.81_linux.run


在安装时 除了显卡驱动项 不安装其他都yes。

NCNN 源码编译 cmake windows_OpenCV

sudo sh cuda_9.0.176.1_linux.runsudo sh cuda_9.0.176.2_linux.runsudo sh cuda_9.0.176.3_linux.runsudo sh cuda_9.0.176.4_linux.run
sudo sh cuda_9.0.176.1_linux.run
sudo sh cuda_9.0.176.2_linux.run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run


四个补丁包默认yes或accept安装下去就行 2. 配置环境变量

在 Home目录 下【Ctrl+H】显示隐藏文件,进入 .bashrc 文件,在文件末尾添加两行:

export PATH=/usr/local/cuda-9.0/bin:$PATHexport LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH


3. 安装cuDNN

重启计算机,下载与CUDA9.0相匹配的cuDNN安装包。然后解压,解压到原路径命令:

tar -zxvf filename -C ./
tar -zxvf filename -C ./


解压出来一个cuda文件夹,里面有一个include和一个lib64。 cd进入cuda文件夹 ,执行以下命令:

NCNN 源码编译 cmake windows_cmake linux模板 多目录_02


  4. 检查CUDA和cuDNN是否安装成功


nvcc--version
nvcc--version
cat /usr/local/cuda/include/cudnn.h | grepCUDNN_MAJOR -A 2
cat /usr/local/cuda/include/cudnn.h | grepCUDNN_MAJOR -A 2


5. OpenCV源码下载解压

到GitHub下载OpenCV源码https://github.com/opencv。需要下载的源码包有两个部分:opencv和opencv_contrib注意要 选择相同的版本 ,其中opencv_contrib是opencv的扩充。 解压两个部分,并且 将opencv_contrib放进opencv文件夹中 ,在opencv文件夹下 新建一个build文件夹 。 5. 安装cmake

先装cmake:

sudo apt-get install cmake
sudo apt-get install cmake


再装cmake-gui:

sudo apt-get install cmake-qt-gui
sudo apt-get install cmake-qt-gui


安装完之后运行cmake界面检查

cmake-gui
cmake-gui


6. 安装OpenCV所需的各种库

直接复制下面的命令, 一次性安装 。

sudo apt install -y \        x264 \        mesa-utils \        libgtk2.0-dev \        libxvidcore-dev \        yasm \        libxine2-dev \        libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \        libv4l-dev \        libfaac-dev \        libmp3lame-dev \        libopencore-amrnb-dev \        libtheora-dev \        libvorbis-dev \        ffmpeg \        libpng-dev \        libdc1394-22-dev \        qt5-default \        libtiff5-dev \        libeigen3-dev libeigen3-doc \        tesseract-ocr \        tesseract-ocr-jpn \        vtk6 \        tcl-vtk6 \        python-vtk6 \        libgflags-dev \        libleptonica-dev \        libtesseract-dev \        gphoto2 \        liblapacke-dev \        libgoogle-glog-dev \        libprotobuf-dev \        libprotoc-dev \        protobuf-compiler \        ccache \        libgphoto2-dev \        libavresample-dev \        libvtk6-dev \        libvtk6-qt-dev \        libatlas-base-dev \        gfortran
sudo apt install -y \
        x264 \
        mesa-utils \
        libgtk2.0-dev \
        libxvidcore-dev \
        yasm \
        libxine2-dev \
        libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
        libv4l-dev \
        libfaac-dev \
        libmp3lame-dev \
        libopencore-amrnb-dev \
        libtheora-dev \
        libvorbis-dev \
        ffmpeg \
        libpng-dev \
        libdc1394-22-dev \
        qt5-default \
        libtiff5-dev \
        libeigen3-dev libeigen3-doc \
        tesseract-ocr \
        tesseract-ocr-jpn \
        vtk6 \
        tcl-vtk6 \
        python-vtk6 \
        libgflags-dev \
        libleptonica-dev \
        libtesseract-dev \
        gphoto2 \
        liblapacke-dev \
        libgoogle-glog-dev \
        libprotobuf-dev \
        libprotoc-dev \
        protobuf-compiler \
        ccache \
        libgphoto2-dev \
        libavresample-dev \
        libvtk6-dev \
        libvtk6-qt-dev \
        libatlas-base-dev \
        gfortran


7. 安装eigen


sudo apt-get install libeigen3-dev
sudo apt-get install libeigen3-dev


8. 装文档


sudo apt-get install doxygen
sudo apt-get install doxygen


9. 装TBB

第一个软件装不了,后来没装似乎也没啥影响。

sudo apt-get install --assume-yes libv4l-dev libtbb-dev libfaac-devlibmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-devsudo apt-get install --assume-yes libvorbis-dev libxvidcore-dev v4l-utils vtk6sudo apt-get install --assume-yes liblapacke-dev libopenblas-dev libgdal-devcheckinstall
sudo apt-get install --assume-yes libv4l-dev libtbb-dev libfaac-devlibmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev
sudo apt-get install --assume-yes libvorbis-dev libxvidcore-dev v4l-utils vtk6
sudo apt-get install --assume-yes liblapacke-dev libopenblas-dev libgdal-devcheckinstall


10. 装lapack


sudo apt-get install libatlas-base-dev
sudo apt-get install libatlas-base-dev


在opencv/cmake/OpenCVFindOpenBLAS.cmake这个文件里里 增加2个路径 :

NCNN 源码编译 cmake windows_OpenCV_03

11. 装numpy


sudo apt install python3-pip
sudo apt install python3-pip
pip3 install numpy==1.5
pip3 install numpy==1.5


12. make设

置OpenCV的安装项

cd到build文件夹,cmake文件,这里make过程中出现什么错误可以对照cmake-gui将 不需用到的错误项OFF掉 ,记住每次重新编译要删除原来build的文件夹。 这一步是编译过程中最容易出错的一部分,所以编译出错就将这一个项关闭掉,除了以下项之外,建议将 -DWITH_FFMPEG = ON 这一项打开,视频流解码时候应该会流畅一些。

cmake ~/software/opencv-4.2.0 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=~/software/opencv-4.2.0/opencv_contrib-4.2.0/modules -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DWITH_TBB=ON -DBUILD_TIFF=ON -DWITH_TIFF=ON -DWITH_GDAL=ON -DWITH_LIBV4L=ON -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DWITH_CUDA=ON -DWITH_CUBLAS=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DWITH_OPENCL=OFF -DWITH_VTK=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_xfeatures2d=OFF -DCUDA_ARCH_BIN=5.3,6.0,6.1 -DBUILD_opencv_dnn=OFF -DOPENCV_DNN_CUDA=OFF -DOPENCV_DNN_OPENCL=OFF
cmake ~/software/opencv-4.2.0 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_EXTRA_MODULES_PATH=~/software/opencv-4.2.0/opencv_contrib-4.2.0/modules -DBUILD_DOCS=ON -DBUILD_EXAMPLES=ON -DWITH_TBB=ON -DBUILD_TIFF=ON -DWITH_TIFF=ON -DWITH_GDAL=ON -DWITH_LIBV4L=ON -DPYTHON_DEFAULT_EXECUTABLE=/usr/bin/python3 -DWITH_CUDA=ON -DWITH_CUBLAS=ON -DCUDA_NVCC_FLAGS="-D_FORCE_INLINES" -DWITH_OPENCL=OFF -DWITH_VTK=OFF -DBUILD_opencv_python2=OFF -DBUILD_opencv_xfeatures2d=OFF -DCUDA_ARCH_BIN=5.3,6.0,6.1 -DBUILD_opencv_dnn=OFF -DOPENCV_DNN_CUDA=OFF -DOPENCV_DNN_OPENCL=OFF


13. 开8个线程进行编译


make -j8
make -j8


14. 安装编译后的文件


sudo make install
sudo make install


15. 编译后文件包转移

编译完之后将编译的 .so 的文件放进python3的site-package中。 16. 检查安装是否成功


import cv2