1

I am trying to build my project using Conan. My project use OpenCV.

I am using Conan version 2.12.2.

I ran the following command :

sudo conan install .. --build=missing -of . -s:h compiler.cppstd=gnu17 -s:b compiler.cppstd=gnu17 -c tools.system.package_manager:mode=install

I use sudo so that conan can install the system libraries that GStreamer depends on, and execute sudo apt-get.

And then :

cmake .. -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake  -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=Release

which failed.

The problem I encounters is the following :

CMake Error at build/cmakedeps_macros.cmake:66 (message):
  Library 'opencv_video' not found in package.  If 'opencv_video' is a system
  library, declare it with 'cpp_info.system_libs' property

OS Info :

NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"

conanfile.txt:

[requires]
opencv/4.10.0
...

[options]
opencv/*:with_ffmpeg=True
opencv/*:with_gstreamer=True
opencv/*:with_v4l=True
opencv/*:gapi=False

...

[generators]
CMakeDeps
CMakeToolchain

conan profile info :

Host profile:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu14
compiler.libcxx=libstdc++11
compiler.version=9
os=Linux

Build profile:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu14
compiler.libcxx=libstdc++11
compiler.version=9
os=Linux

CMakeLists.txt

find_package(OpenCV REQUIRED COMPONENTS core imgproc highgui video) # I test without the COMPONENTS aswell.
...
target_link_libraries(videocapture 
    PRIVATE
    opencv::opencv opencv::opencv_video # I tested with and without opencv::opencv_video aswell as other core components. Didn't change anything.
   ...
)

Solutions I tried: building from source and linking that from the CMake works on another computer. I modified multiple time the Conanfile.txt to includes different options but nothing worked. I modified the CMakeLists.txt multiple times aswell and nothing worked.

The main goal is to be able to compile my program on arm/amd linux system easily.

EDIT 24/02 16:41 : Added conan/cmake commands, and conan version

EDIT 25/02 : Added cmake output and sudo usage explanation

cmake logs (the actual log file is way too long to be added) :

cmake .. -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake  -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=Release 
CMake Warning (dev) at CMakeLists.txt:118:
  Syntax Warning in cmake code at column 50

  Argument not separated from preceding token by whitespace.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Using Conan toolchain: /home/winston2/video-manager/arm/build/conan_toolchain.cmake
-- Conan toolchain: Defining architecture flag: -m64
-- Conan toolchain: C++ Standard 17 with extensions ON
-- Conan: Component target declared 'opencv_core'
-- Conan: Component target declared 'opencv::opencv_core_alias'
-- Conan: Component target declared 'opencv_flann'
-- Conan: Component target declared 'opencv_imgproc'
-- Conan: Component target declared 'opencv_ml'
-- Conan: Component target declared 'opencv_dnn'
-- Conan: Component target declared 'opencv_features2d'
-- Conan: Component target declared 'opencv::opencv_flann_alias'
-- Conan: Component target declared 'opencv_imgcodecs'
-- Conan: Component target declared 'opencv::opencv_imgproc_alias'
-- Conan: Component target declared 'opencv::opencv_ml_alias'
-- Conan: Component target declared 'opencv_photo'
-- Conan: Component target declared 'opencv_calib3d'
-- Conan: Component target declared 'opencv::opencv_dnn_alias'
-- Conan: Component target declared 'opencv::opencv_features2d_alias'
-- Conan: Component target declared 'opencv::opencv_imgcodecs_alias'
-- Conan: Component target declared 'opencv::opencv_photo_alias'
-- Conan: Component target declared 'opencv_videoio'
-- Conan: Component target declared 'opencv::opencv_calib3d_alias'
-- Conan: Component target declared 'opencv_highgui'
-- Conan: Component target declared 'opencv_objdetect'
-- Conan: Component target declared 'opencv_stitching'
-- Conan: Component target declared 'opencv_video'
-- Conan: Component target declared 'opencv::opencv_videoio_alias'
-- Conan: Component target declared 'opencv::opencv_highgui_alias'
-- Conan: Component target declared 'opencv::opencv_objdetect_alias'
-- Conan: Component target declared 'opencv::opencv_stitching_alias'
-- Conan: Component target declared 'opencv::opencv_video_alias'
-- Conan: Target declared 'opencv::opencv'
CMake Error at build/cmakedeps_macros.cmake:66 (message):
  Library 'opencv_video' not found in package.  If 'opencv_video' is a system
  library, declare it with 'cpp_info.system_libs' property
Call Stack (most recent call first):
  build/OpenCV-Target-release.cmake:23 (conan_package_library_targets)
  build/OpenCVTargets.cmake:24 (include)
  build/OpenCVConfig.cmake:16 (include)
  CMakeLists.txt:17 (find_package)


-- Configuring incomplete, errors occurred!
3
  • 1
    are you using conan 1 or conan 2? What conan commands did you run? What cmake commands did you run? Commented Feb 24 at 11:17
  • 1
    For things that don't work, it is generally better doing a Github ticket in github.com/conan-io/conan/issues, clarifying the Conan version, the exact commands to reproduce, adding the full output of those commands, etc. Commented Feb 24 at 11:46
  • 1
    Next we probably need the full cmake output. Not sure why you're running Conan with sudo? Commented Feb 24 at 23:10

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.