Ubuntu18.04——源码编译OpenCV-4.1.1

Ubuntu18.04——源码编译OpenCV-4.1.1,第1张

文章目录
    • 1.拉取源码
    • 2.Cmake
      • 报错解决:CUDA_nppicom_LIBRARY (ADVANCED) 未定义
        • 解决方法
    • 3.Make
      • 报错解决:Unsupported gpu architecture 'compute_30'
        • 解决方法
      • 报错解决:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引
        • 解决方法
    • `CMakeLists.txt`模板
      • OpenCV程序
      • ROS-OpenCV程序

前提条件:可以自由S网。

参考文章:

  • ubuntu1804编译opencv4.4 +cuda
1.拉取源码
git clone https://github.com/opencv/opencv.git
cd opencv && git checkout 4.1.1
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib && git checkout 4.1.1
cd ..
2.Cmake
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DOPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules \
-DBUILD_EXAMPLES=ON \
-DWITH_GSTREAMER=ON \
-DVIDEOIO_PLUGIN_LIST=gstreamer \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=OFF \
-DWITH_EIGEN=ON \
-DWITH_OPENGL=ON \
-DCUDA_nppicom_LIBRARY=stdc++ \
-DCUDA_GENERATION=Auto \
-DWITH_CUDA=ON \
-DWITH_CUBLAS=ON \
-DWITH_CUDNN=ON .. 
# 参数解析
# 如果要使用CUDA,务必加入该参数
# -DCUDA_nppicom_LIBRARY=stdc++ \
报错解决:CUDA_nppicom_LIBRARY (ADVANCED) 未定义

目前该报错已知为CUDA和OpenCV环境导致,。

解决方法
  • Opencv-GPU 编译错误 CUDA_nppicom_LIBRARY (ADVANCED) 未定义

在编译参数中加入:

-DCUDA_nppicom_LIBRARY=stdc++ \

3.Make
make -j12
sudo make install
sudo ldconfig
报错解决:Unsupported gpu architecture ‘compute_30’

解决方法
  • 参考文章:Unsupported gpu architecture 'compute_11’解决方法

在编译选项中加入:

-DCUDA_GENERATION=Auto \
报错解决:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引

解决方法
  • 参考文章:对‘TIFFReadRGBAStrip@LIBTIFF_4.0’未定义的引
    在编译选项中加入:
-DBUILD_TIFF=ON \
CMakeLists.txt模板 OpenCV程序
cmake_minimum_required(VERSION 3.0.2)
project(XXXX)

# 0.set opencv dir(where you build)
set(OpenCV_DIR /home/innox/opencv/build)

# 1.find package
# OpenCV 
find_package(OpenCV REQUIRED)

# 2.include directories
include_directories(
  include
  
  ${OpenCV_INCLUDE_DIRS}
)

# 3.link opencv lib
add_executable(image_sub  src/image_sub.cpp)
target_link_libraries(image_sub  ${OpenCV_LIBS})
ROS-OpenCV程序
cmake_minimum_required(VERSION 3.0.2)
project(XXXX)

# 0.set opencv dir(where you build)
set(OpenCV_DIR /home/innox/opencv/build)

# 1.find package
# Catkin 
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rosmsg
  rospy
  message_filters # message_filters
  cv_bridge # ros cv_bridge
  OpenCV # ros cv
  image_transport # ros cv
)
# Boost 
find_package(Boost REQUIRED)
# OpenCV 
find_package(OpenCV REQUIRED)

# 2.catkin package
catkin_package()

# 3.include directories
include_directories(
  include

  ${catkin_INCLUDE_DIRS}
  ${Boost_INCLUDE_DIRS}
  ${OpenCV_INCLUDE_DIRS}
)

# 4.link opencv lib
add_executable(image_sub  src/image_sub.cpp)
target_link_libraries(image_sub  ${OpenCV_LIBS})

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/716912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存