1

I installed opencv with brew install opencv. Added the pkg-config:

$ pkg-config --cflags --libs opencv4  

-I/usr/local/opt/opencv/include/opencv4 -L/usr/local/opt/opencv/lib -lopencv_gapi -lopencv_stitching -lopencv_alphamat -lopencv_aruco -lopencv_barcode -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_sfm -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_viz -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_dnn -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core

My CMakeLists.txt is:

cmake_minimum_required(VERSION 3.20)
project(opencv_projects)

set(CMAKE_CXX_STANDARD 14)

find_package(PkgConfig REQUIRED)
pkg_check_modules(OPENCV4 REQUIRED opencv4)

add_executable(opencv_projects main.cpp)

target_link_libraries(opencv_projects ${OPENCV4_LIBRARIES})
target_include_directories(opencv_projects PUBLIC ${OPENCV4_INCLUDE_DIRS})
target_compile_options(opencv_projects PUBLIC ${OPENCV4_CFLAGS_OTHER})

But when I try to build I get this error:

/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --build /Users/theobouwman/dev/studie/ti/RTOS/practicum/opencv_projects/cmake-build-debug --target opencv_projects -- -j 6
[ 50%] Linking CXX executable opencv_projects
ld: library not found for -lopencv_gapi
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [opencv_projects] Error 1
make[2]: *** [CMakeFiles/opencv_projects.dir/all] Error 2
make[1]: *** [CMakeFiles/opencv_projects.dir/rule] Error 2
make: *** [opencv_projects] Error 2
Dirk
  • 3,095
  • 4
  • 19
  • 37
  • 1
    With such new CMake as you have you could use `IMPORTED_TARGET` keyword for `pkg_check_modules`, which would create a ready-to-use imported target `PkgConfig::OPENCV4`, as described in [that answer](https://stackoverflow.com/a/57224542/3440745). Without imported target you need to process also variable `OPENCV4_LIBRARY_DIRS` which contains directories for search libraries. This processing is missed in the [top answer](https://stackoverflow.com/a/29316084/3440745) but included e.g. in [that answer](https://stackoverflow.com/a/44681856/3440745). – Tsyvarev Oct 23 '21 at 13:59
  • Did you try opencv, instead of opencv4? – Hugo Oct 23 '21 at 23:00

0 Answers0