сбой запуска процесса: неизвестная ошибка с импортированной библиотекой cmake при запуске приложения C

#c #opencv #cmake

Вопрос:

Я хочу создать приложение, и я не хочу добавлять полные исходники OpenCV, поэтому я решил использовать .dll их для своего небольшого проекта, я добавил .dll файл s и .lib s opencv и написал для них конфигурацию cmake:

 project(OpenCV CXX)

set(OPENCV_VERSION 453)

add_library(OpenCV_Core SHARED IMPORTED GLOBAL)
set_target_properties(OpenCV_Core PROPERTIES
        IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/bin/opencv_core${OPENCV_VERSION}.dll"
        IMPORTED_IMPLIB   "${CMAKE_CURRENT_SOURCE_DIR}/lib/opencv_core${OPENCV_VERSION}.lib"
        INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
        )

add_library(OpenCV_Highgui SHARED IMPORTED GLOBAL)
set_target_properties(OpenCV_Highgui PROPERTIES
        IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/bin/opencv_highgui${OPENCV_VERSION}.dll"
        IMPORTED_IMPLIB   "${CMAKE_CURRENT_SOURCE_DIR}/lib/opencv_highgui${OPENCV_VERSION}.lib"
        INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
        )

add_library(OpenCV_Imgproc SHARED IMPORTED GLOBAL)
set_target_properties(OpenCV_Imgproc PROPERTIES
        IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/bin/opencv_imgproc${OPENCV_VERSION}.dll"
        IMPORTED_IMPLIB   "${CMAKE_CURRENT_SOURCE_DIR}/lib/opencv_imgproc${OPENCV_VERSION}.lib"
        INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
        )

add_library(OpenCV_Imgcodecs SHARED IMPORTED GLOBAL)
set_target_properties(OpenCV_Imgcodecs PROPERTIES
        IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/bin/opencv_imgcodecs${OPENCV_VERSION}.dll"
        IMPORTED_IMPLIB   "${CMAKE_CURRENT_SOURCE_DIR}/lib/opencv_imgcodecs${OPENCV_VERSION}.lib"
        INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/include"
        )

add_custom_target(COPY_LIBS ALL)
file(GLOB_RECURSE libs ${CMAKE_CURRENT_SOURCE_DIR}/bin/*.dll)
foreach(lib ${libs})
    add_custom_command(
            TARGET COPY_LIBS
            COMMAND ${CMAKE_COMMAND} -E copy ${lib} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
            )
endforeach()
 

И использовать их таким образом в моем целевом проекте

 cmake_minimum_required(VERSION 3.21)
project(TestProject)

set(CMAKE_CXX_STANDARD 14)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

add_subdirectory(3rdParty/opencv-4.5.3)

add_executable(TestProject main.cpp)
target_link_libraries(TestProject PUBLIC OpenCV_Core OpenCV_Highgui OpenCV_Imgproc OpenCV_Imgcodecs)
 

и мой главный

 int main()
{
    cv::Mat img;
    return 0;
}
 

этого должно быть достаточно, чтобы проверить, правильно ли загружена хотя бы opencv_core библиотека
Он отлично компилируется, ошибок при связывании не возникает, однако, когда я запускаю приложение, я получаю этот странный вывод

сбой запуска процесса: неизвестная ошибка

Процесс завершен с кодом выхода 0

Все файлы библиотеки и включенные файлы взяты из одного и того же официального релиза