最近恢复了Win系统,重新编译某个项目的时候,出现了这个错误,因为项目是以前备份的,所以可以断定不是项目文件本身的问题,而只可能是环境变化造成的。
在网上搜索了一通,有说什么配置路径不对的,有说是生成事件参数配置问题的等等,但我都可以排除这些问题。
最后看到某文章标题《VS 编译CMake生成项目 命令setlocal报错(error MSB3073)》,才想起这个工程是基于CMake的,于是突然想起恢复了系统之后,CMake也没了。
于是安装CMake的Windows版本cmake-3.21.4-windows-x86_64.msi。
解决问题!
命令行部分的内容:
setlocal
cd D:\MyItems\CDMatrix\Build\plugins\AutoFeatureExtracte
if %errorlevel% neq 0 goto :cmEnd
D:
if %errorlevel% neq 0 goto :cmEnd
"C:\Program Files\CMake\bin\cmake.exe" -E cmake_autogen D:/MyItems/CDMatrix/Build/plugins/AutoFeatureExtracte/CMakeFiles/AutoFeatureExtracte_autogen.dir/AutogenInfo.json Release
if %errorlevel% neq 0 goto :cmEnd
"C:\Program Files\CMake\bin\cmake.exe" -E touch D:/MyItems/CDMatrix/Build/plugins/AutoFeatureExtracte/AutoFeatureExtracte_autogen/autouic_Release.stamp
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
可以发现,上述命令行中出现了cmake.exe的安装路径,因为更加可以确认是由于此问题引起的错误,实际上刚开始没发现问题是因为后面的内容都被掩盖住了,如下图所示:
所以一开始才没能发现问题。
以上,仅供分享与参考。