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
- Expect:
Source Code
- Assuming base repository at
/data/code/repo
- fork and clone https://github.com/opencv/opencv/tree/4.11.0 or latest (we actually got 4.12)
- fork and clone https://github.com/opencv/opencv_contrib/tree/4.11.0 or latest
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
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