I am using visual studio code on Ubuntu 20.04 and cmake tools for visual studio code.
I am trying to use opencv in a project. I used vcpkg to build OpenCV and it is installed:
The cmakeList.txt is as follow:
cmake_minimum_required(VERSION 3.0.0)
set(CMAKE_TOOLCHAIN_FILE /home/m/vcpkg/scripts/buildsystems/vcpkg.cmake)
project(testcmake VERSION 0.1.0)
include(CTest)
enable_testing()
find_package(OpenCV REQUIRED)
add_executable(testcmake main.cpp)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
I also added this line to setting.json:
{
"cmake.configureOnOpen": false,
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
"cmake.configureSettings": {
"CMAKE_TOOLCHAIN_FILE": "/home/m/vcpkg/scripts/buildsystems/vcpkg.cmake"
}
}
but when I run cmake, I am getting this error:
[main] Building folder: cmakeTest
[main] Configuring folder: cmakeTest
[proc] Executing command: /usr/bin/cmake --no-warn-unused-cli -DCMAKE_TOOLCHAIN_FILE:STRING=/home/m/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -DCMAKE_C_COMPILER:FILEPATH=/bin/gcc-9 -DCMAKE_CXX_COMPILER:FILEPATH=/bin/g++-9 -H/home/m/MyData/sourceCode/cmakeTest -B/home/m/MyData/sourceCode/cmakeTest/build -G "Unix Makefiles"
[cmake] Not searching for unused variables given on the command line.
[cmake] -- Configuring incomplete, errors occurred!
[cmake] See also "/home/m/MyData/sourceCode/cmakeTest/build/CMakeFiles/CMakeOutput.log".
[cmake] CMake Error at CMakeLists.txt:7 (find_package):
[cmake] By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
[cmake] asked CMake to find a package configuration file provided by "OpenCV", but
[cmake] CMake did not find one.
[cmake]
[cmake] Could not find a package configuration file provided by "OpenCV" with any
[cmake] of the following names:
[cmake]
[cmake] OpenCVConfig.cmake
[cmake] opencv-config.cmake
[cmake]
[cmake] Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
[cmake] "OpenCV_DIR" to a directory containing one of the above files. If "OpenCV"
[cmake] provides a separate development package or SDK, be sure it has been
[cmake] installed.
[cmake]
[cmake]
Why make can not find opencv using vcpkg?
Edit 1
I compiled OpenCV for x64:
opencv4:x64-linux 4.3.0#1 computer vision library
opencv4[dnn]:x64-linux Enable dnn module
opencv4[jpeg]:x64-linux JPEG support for opencv
opencv4[opengl]:x64-linux opengl support for opencv
opencv4[png]:x64-linux PNG support for opencv
opencv4[tiff]:x64-linux TIFF support for opencv
opencv4[webp]:x64-linux WebP support for opencv
opencv:x64-linux 4.3.0 Computer vision library
opencv[dnn]:x64-linux Enable dnn module
opencv[jpeg]:x64-linux JPEG support for opencv
opencv[opengl]:x64-linux opengl support for opencv
opencv[png]:x64-linux PNG support for opencv
opencv[tiff]:x64-linux TIFF support for opencv
opencv[webp]:x64-linux WebP support for opencv
I know that I should set the vcpkg triplets, how can I set it by default so all applications use it instead of putting it in cmake?
Update 2
I set the triplets as following but still getting the same error:
cmake_minimum_required(VERSION 3.0.0)
set(CMAKE_TOOLCHAIN_FILE /home/m/vcpkg/scripts/buildsystems/vcpkg.cmake)
set(VCPKG_TARGET_TRIPLET x64-linux CACHE STRING "VCPKG Target Triplet to use")
project(testcmake VERSION 0.1.0)
include(CTest)
enable_testing()
find_package(OpenCV REQUIRED)
add_executable(testcmake main.cpp)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)