vs编译cmake报错RC Pass 1: command “rc /foCMakeFiles\cmTC_0cba6.dir/manifest.res CMakeFiles\cmTC_0cba6.di

vs编译cmake报错如下:

RC Pass 1: command “rc /foCMakeFiles\cmTC_0cba6.dir/manifest.res CMakeFiles\cmTC_0cba6.dir/manifest.rc” failed (exit code 0) with the following output:
系统找不到指定的文件。
ninja: build stopped: subcommand failed.
出错原因是vs版本2017太低,需要更高版本的 .Net Framework 4.8 SDK,所以解决方法有两个,一个如下图单独安装.Net Framework 4.8版本,另一种解决方法是安装更高版本的visual Studio.

在这里插入图片描述

其中, .Net Framework 4.8 SDK的安装网上有详细教程,详见:https://jingyan.baidu.com/article/e3c78d64003ba97d4c85f5af.html

另外,vs2019编译遇到问题:
OpenCV does not recognize MSVC_VERSION “1929”. Cannot set OpenCV_RUNTIME C:\Code\janusfacelock_cpp_onnxruntime\3rdparty/opencv/opencv.cmake 29

需要在CMakeLists.txt中加入1926对应的vc16版本

if(MSVC_VERSION EQUAL 1400)
        set(OpenCV_RUNTIME vc8)
    elseif(MSVC_VERSION EQUAL 1500)
        set(OpenCV_RUNTIME vc9)
    elseif(MSVC_VERSION EQUAL 1600)
        set(OpenCV_RUNTIME vc10)
    elseif(MSVC_VERSION EQUAL 1700)
        set(OpenCV_RUNTIME vc11)
    elseif(MSVC_VERSION EQUAL 1800)
        set(OpenCV_RUNTIME vc12)
    elseif(MSVC_VERSION EQUAL 1900)
        set(OpenCV_RUNTIME vc14)
    elseif(MSVC_VERSION EQUAL 1929)
        set(OpenCV_RUNTIME vc16)
    elseif(MSVC_VERSION MATCHES "^191[0-9]$")
        set(OpenCV_RUNTIME vc15)
    else()
        message(WARNING "OpenCV does not recognize MSVC_VERSION \"${MSVC_VERSION}\". Cannot set OpenCV_RUNTIME")
    endif()

成功,问题解决。

猜你喜欢

转载自blog.csdn.net/qq_35037684/article/details/120335336