C++ 在visual studio代码中设置工具链文件和用于vsc的cmake工具不会';行不通

C++ 在visual studio代码中设置工具链文件和用于vsc的cmake工具不会';行不通,c++,visual-studio-code,cmake,vcpkg,C++,Visual Studio Code,Cmake,Vcpkg,我在Ubuntu 20.04上使用visual studio代码,在visual studio代码中使用cmake工具 我正在尝试在项目中使用opencv。我使用vcpkg构建OpenCV,它已安装: cmakeList.txt如下所示: cmake_minimum_required(VERSION 3.0.0) set(CMAKE_TOOLCHAIN_FILE /home/m/vcpkg/scripts/buildsystems/vcpkg.cmake) project(testcmake V

我在Ubuntu 20.04上使用visual studio代码,在visual studio代码中使用cmake工具

我正在尝试在项目中使用opencv。我使用vcpkg构建OpenCV,它已安装:

cmakeList.txt如下所示:

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)
我还将这一行添加到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"
    }
  }
但当我运行cmake时,我得到了以下错误:

[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] 
为什么make无法使用vcpkg找到opencv

编辑1 我为x64编译了OpenCV:

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
我知道我应该设置vcpkg三元组,如何在默认情况下设置它,以便所有应用程序都使用它,而不是将它放在cmake中

更新2 我将三元组设置为如下,但仍然得到相同的错误:

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)

你有没有检查过编译哪个平台-比如x86或x64?在我的机器上默认是x86-但我通常编译x64。。。您应该在%VC\u PACKAGE%\vcpkg\installed\%PLATFORM%上找到openCV文件\include@Bernd请参阅更新部分。我为x64编译。我可以全局设置这个和工具链,这样我就不需要按照cmake执行此操作了吗?您可以使用环境变量:是否检查安装了x64 linux版本?是否检查了要编译的平台-如x86或x64?在我的机器上默认为x86-但我通常为x64编译。。。您应该在%VC\u PACKAGE%\vcpkg\installed\%PLATFORM%上找到openCV文件\include@Bernd请参阅更新部分。我为x64编译。我是否可以全局设置此选项和工具链,这样就不需要按照cmake执行此操作?您可以使用环境变量:是否已检查是否安装了x64 linux版本?