编译opencv: Linux编译opencv

 

 
 
mkdir build
mkdir opencvbuild

# 不编译java,不编译Python,指定安装位置
cd build
cmake .. -D BUILD_JAVA=OFF -D BUILD_PYTHON=OFF -D CMAKE_INSTALL_PREFIX=pwd/opencvbuild
make -j4
make install

# 编译静态库
cmake .. -D WITH_GTK=OFF -D CMAKE_BUILD_TYPE=RELEASE -D BUILD_SHARED_LIBS=OFF
-D BUILD_JAVA=OFF -D BUILD_PYTHON=OFF -D BUILD_TESTS=OFF -D BUILD_opencv_world=ON -D CMAKE_INSTALL_PREFIX=pwd/opencvbuild

 

# cmake 编译参数
-D WITH_GTK=OFF                  # 不编译GTK,GUI显示,imshow
-D WITH_FFMPEG=OFF         # 不编译ffmpeg
-D CMAKE_BUILD_TYPE=RELEASE      # 编译 release 版本
-D BUILD_SHARED_LIBS=OFF         # OFF:编译静态库,ON:编译动态库,默认动态库
-D BUILD_JAVA=OFF                # 不编译java
-D BUILD_opencv_python3=OFF      # 不编译python
-D BUILD_TESTS=OFF               # 不编译test库,相信OpenCV,不需要测试,可以减少很多编译时间
-D BUILD_PERF_TESTS=OFF
-D BUILD_opencv_video=OFF
-D BUILD_opencv_videostab=OFF
-D BUILD_OPENEXR=ON              # 编译出[ libIlmImf ]
-D BUILD_opencv_world=ON         # 编译成 opencv_world 
-D CMAKE_INSTALL_PREFIX=pwd/opencvbuild  # 设置安装位置

 

 

 

 

 

 

报错问题处理:

问题:代码调用 imread,编译时报错:对‘cv::imread(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)’未定义的引用

原因:新版本的opencv把读取图片从 libopencv_highgui 中剥离出来了,多个一个so库 libopencv_imgcodecs

解决:在编译时,多链接一个库 libopencv_imgcodecs

 

 

 

 

 

 

posted @ 2023-11-17 16:50  十一的杂文录  阅读(46)  评论(0编辑  收藏  举报