Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ CMake can';在windows中找不到opencv_C++_Opencv_Cmake_Windows 10 - Fatal编程技术网

C++ CMake can';在windows中找不到opencv

C++ CMake can';在windows中找不到opencv,c++,opencv,cmake,windows-10,C++,Opencv,Cmake,Windows 10,我已在windows中安装OpenCV(源代码) 现在我想尝试一个测试,所以我有以下CMakeLists.txt cmake_minimum_required(VERSION 3.0.0) project(opencvGPUtest_youtube VERSION 0.1.0) include(CTest) enable_testing() find_package(OpenCV REQUIRED ) include_directories(( ${OpenCV_INCLUDE_DIRS})

我已在windows中安装OpenCV(源代码)

现在我想尝试一个测试,所以我有以下CMakeLists.txt

cmake_minimum_required(VERSION 3.0.0)
project(opencvGPUtest_youtube VERSION 0.1.0)

include(CTest)
enable_testing()

find_package(OpenCV REQUIRED )
include_directories(( ${OpenCV_INCLUDE_DIRS}))

add_executable(opencvGPUtest_youtube main.cpp)

target_link_libraries(opencvGPUtest_youtube ${OpenCV_LIBS})

set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
然而,当我做。。从我得到的一个构建文件夹

CMake Error at CMakeLists.txt:13 (find_package):
  By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "OpenCV", but
  CMake did not find one.

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

  Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
  "OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
  provides a separate development package or SDK, be sure it has been
  installed.
我已尝试编辑CMakeLists.txt文件,以包括Opencv目录,如中所示

find_package(OpenCV REQUIRED PATH C:/Users/theuser/Path/To/MyOpenCVInstallation/build/install/x64/vc16/lib

但它仍然找不到OpenCV

我还尝试了-DOpenCV_DIR选项,但没有结果

如何使其识别OpenCV


编辑:

当我将OpenCV_DIR指定为myoppencvinstallation/build/install/x64/vc16/lib时,错误变为

CMake Error at C:/Program Files/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find OpenCV (missing: PATH
  C:/Users/user/Path/To/MyOpenCVInstallation/build/install/) (found
  version "4.5.2")
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  C:/Users/user/path/to/MyOpenCVInstallation/build/install/x64/vc16/lib/OpenCVConfig.cmake:410 (find_package_handle_standard_args)
  CMakeLists.txt:13 (find_package)
编辑2:

结果我不得不使用

find_package(OpenCV REQUIRED PATHS C:/Users/theuser/Path/To/MyOpenCVInstallation/build/install/x64/vc16/lib
这样看来,cmake运行正常

然而,通常在这一点上(在ubuntu中),我运行
make
,但在windows中,我应该使用VSCode中的CtrlF5

现在我得到了输出

-------------------------------------------------------------------
You may only use the C/C++ Extension for Visual Studio Code
with Visual Studio Code, Visual Studio or Visual Studio for Mac
software to help you develop and test your applications.
-------------------------------------------------------------------
Loaded 'C:\Users\aliag\DiskD\MyStudy\MyOpenCVInstallation\opencvgpu_test_youtube\build\Debug\opencvGPUtest_youtube.exe'. Symbols loaded.
Loaded 'C:\Windows\System32\ntdll.dll'. 
Loaded 'C:\Windows\System32\kernel32.dll'. 
Loaded 'C:\Windows\System32\KernelBase.dll'. 
Loaded 'C:\Windows\System32\apphelp.dll'. 
Loaded 'C:\Windows\System32\vcruntime140_1d.dll'. 
Loaded 'C:\Windows\System32\vcruntime140d.dll'. 
Loaded 'C:\Windows\System32\msvcp140d.dll'. 
The program '[1112] opencvGPUtest_youtube.exe' has exited with code -1073741515 (0xc0000135).

因此,我认为这是一个不同的问题?

那么,在您的OpenCV安装下,文件
OpenCVConfig.cmake
的确切路径是什么?将目录与该文件一起用作
OpenCV\u DIR
变量的值。我搜索了
OpenCVConfig.cmake
,得到了四(4)个文件。路径是:C:..\myOpenInstallation\build\win install\x64\vc16\lib,然后是另一个带有install\x64\vc16\lib的路径,另外两个路径正好是win install或install。我应该使用哪一个可能是安装文件夹中的一个,但在任何情况下都可能有效。CMake将使用生成文件夹或安装文件夹中的包。我通常不构建安装目标,而是使用构建文件夹。根据软件包的不同,安装可能有一个优点,即头可以组合在一个文件夹中,而不是分散在一个文件夹中。安装没有这样的
PATH
选项。您可能指的是
路径
选项。但由于您已指定了
OpenCV_DIR
变量,因此不需要该选项。错误代码
0xc0000135
表示您的某些dll库未列在
路径
环境变量中。见例。
-------------------------------------------------------------------
You may only use the C/C++ Extension for Visual Studio Code
with Visual Studio Code, Visual Studio or Visual Studio for Mac
software to help you develop and test your applications.
-------------------------------------------------------------------
Loaded 'C:\Users\aliag\DiskD\MyStudy\MyOpenCVInstallation\opencvgpu_test_youtube\build\Debug\opencvGPUtest_youtube.exe'. Symbols loaded.
Loaded 'C:\Windows\System32\ntdll.dll'. 
Loaded 'C:\Windows\System32\kernel32.dll'. 
Loaded 'C:\Windows\System32\KernelBase.dll'. 
Loaded 'C:\Windows\System32\apphelp.dll'. 
Loaded 'C:\Windows\System32\vcruntime140_1d.dll'. 
Loaded 'C:\Windows\System32\vcruntime140d.dll'. 
Loaded 'C:\Windows\System32\msvcp140d.dll'. 
The program '[1112] opencvGPUtest_youtube.exe' has exited with code -1073741515 (0xc0000135).