OpenCV Build Linux.md - erdTony/Eclipse7doc GitHub Wiki

Building OpenCV4 on Linux

^Initial Draft: May 30, 2025^

References

Prerequsites

  • Assuming Ubuntu-flavor v24.04+ (LTS)

Qt v6.10+

  • Assuming Qt6 installed at /opt/Qt

CMake

  • $ cd /opt/Qt/Tools/CMake/bin
  • $ ./cmake --version Expect v3.30+

g++ v14.2+

  • Test: c++ --version
  • Test: gdb --version (using v16.2)

Environment

  • $ cd /etc
  • $ sudo cp environment environment.###
  • $ sudo pico environment
    • Expect: /usr/bin for c++ and friends
    • Expect: git somewhere
    • Add: /opt/Qt/Tools/CMake/bin

Source Code

CMake Setup

  • If new run, `rm -rf /data/code/temp/opencv4[d]/build'
  • Run cmake-gui from /opt/Qt/Tools/CMake/bin
  • Source: /data/code/repo/opencv
  • Build: /data/code/temp/opencv4[d]/build - 'd' for debug
  • Deploy later: /data/code/3rdParty/opencv4[d]
  • Configure
  • Yes if build directory doesn't exist, It Shouldn't!
  • Specify Unix Makefiles
  • Select Use default native compilers
  • Finish

CMake Configuration

  • CMAKE

    • Add: CMAKE_MAKE_PROGRAM FILEPATH to /opt/Qt/Tools/CMake/bin/cmake
    • Set: CMAKE_BUILD_TYPE to Release
    • Set: CMAKE_INSTALL_PREFIX to /data/code/3rdParty/opencv4
  • BUILD

    • Check: BUILD_DOCS BUILD_EXAMPLES BUILD_OPENJPEG
    • Uncheck: OPENCV_DNN_CUDA
    • Uncheck all except core, imageproc, objdetect, & xobjdetect
    • If NOT Release Build Check: BUILD_WITH_DEBUG_INFO
  • OPENCV

    • Set: OPENCV_EXTRA_MODULES_PATH as /data/code/repo/opencv_contrib/modules
  • WITH

    • Check: WITH_QT
    • Uncheck: _AVIF _EIGEN _FFMPEG IMGCODEC* _JASPER _JPEG _OPENJPEG _PNG _TESSERACT _TIFF _V4L
  • QT

    • Add: QT_QMAKE_EXECUTABLE FILEPATH /opt/Qt/6.10.0/gcc_64/bin/qmake
    • Add: Qt6_DIR PATH /opt/Qt/6.10.0
  • INSTALL

  • Check: INSTALL_C_EXAMPLES

  • Check: INSTALL_TESTS

  • Configure

  • Generate

Build!

  • $ cd /data/code/temp/opencv4[d]/build
  • $ make -B
  • Make a pot of coffee
  • $ make install

Integrate

  • Create OpenCV4.pri file in /data/code/repo/Eclipse7
# file: {Eclipse7 repo}/OpenCV4.pri

INCLUDEPATH *= /data/code/3rdParty/opencv4/include/opencv4
LIBS *= -L/data/code/3rdParty/opencv4/libs

LIBS *= -lopencv_core
#LIBS *= -lopencv_highgui
LIBS *= -lopencv_imageproc
LIBS *= -lopencv_objdetect

DISTFILES *= /data/code/3rdParty/opencv4/libs/libopencv_core.so.4.12.0
DISTFILES *= /data/code/3rdParty/opencv4/libs/libopencv_imageproc.so.4.12.0
DISTFILES *= /data/code/3rdParty/opencv4/libs/libopencv_objdetect.so.4.12.0