本文主要是介绍error MSB6006: “cmd.exe”已退出,代码为 1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我有一个VS 12解决方案与我自己的项目,这取决于一些依赖项(使用cmake生成的项目文件)。我使用cmake生成这些VS12项目,并将这些项目添加到我的解决方案(使用相对路径)。然后我不得不调整这些项目的输出目录,建立目标在其他地方我自己的项目可以找到他们(所以只是运行cmake后,路径更改不能解决我的问题,因为我将编辑所有项目
如果现在解决方案的绝对路径更改,解决方案仍然可以找到项目 - 但是在构建我从cmake收到错误,“老路径“不存在。
重现我的问题的步骤:
- 从下载cmake项目 a>。
- 解压缩到 C:\cmake的目录
- code> C:\ cmake \build
- 打开命令行并转到 C :\cmake\build
- 执行 cmake ..
- 将 C:\cmake 目录重命名为 C:\cmake2
- 打开解决方案 C:\cmake2\build\CMake.sln
将出现一个包含错误的长列表(太长,无法完全包含在内) - 都是由于旧路径“C:\cmake \”ist仍在某处使用而导致的。示例:
1> ------构建开始:项目:ZERO_CHECK,配置:调试Win32 ---- - 2> ------跳过生成:项目:RUN_TESTS,配置:调试Win32 ------ 2>未选择项目以构建此解决方案配置1。检查构建系统1> CMake正在重新运行,因为C:/cmake/build/CMakeFiles/generate.stamp依赖文件丢失。 1> CUSTOMBUILD:CMake错误:源目录“C:/ cmake”似乎不包含CMakeLists.txt。 1>指定--help用于使用,或按CMake GUI上的帮助按钮。 3> ------构建开始:项目:cmbzip2,配置:调试Win32 ------ 4> ------构建开始:项目:cmzlib,配置:调试Win32 ------ 5> ------构建已启动:项目:cmexpat,配置:调试Win32 ------ 6> ------构建启动:项目:cmsys,配置:调试Win32 ------ 3> C:\Windows \Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Targets(1422, 5):warning:引用项目“C:/cmake/build/ZERO_CHECK.vcxproj”不存在。
我想生成VS项目文件只有一次 - 不是再次,如果文件夹的位置更改。任何想法如何cmake可以使用相对路径?
即使问题是downvote我会提供一个答案在这里人们面临同样的问题(根据他们的环境,这可能是我的意见中真正的问题)。
我从我的参考的所有项目文件中删除至少解决以下部分:
< ItemGroup> < CustomBuild Include =“.. \..\Source\CMakeLists.txt”> <消息条件=“'$(配置)| $(平台)'=='Debug | Win32'”>构建自定义规则C:/cmake/Source/CMakeLists.txt< / Message> < Command Condition =“'$(Configuration)| $(Platform)'=='Debug | Win32'”> setlocal “C:\Program Files\CMake 2.8 \bin \cmake.exe“-HC:/ cmake -BC:/ cmake / build --check-stamp-file C:\cmake\build\Source\CMakeFiles\generate.stamp if% errorlevel%neq 0 goto:cmEnd :cmEnd endlocal& amp; call:cmErrorLevel%errorlevel%& amp; goto:cmDone :cmErrorLevel 退出/ b%1 :cmDone 如果%errorlevel%neq 0 goto:VCEnd< / Command> < AdditionalInputs Condition =“'$(Configuration)| $(Platform)'=='Debug | Win32'”> C:/cmake/Source/CMakeLists.txt; C:\cmake\Source \CMakeLists.txt; C:\Program Files \CMake 2.8 \share \cmake-2.8 \Modules\CheckIncludeFile.cmake; C:\Program Files \CMake 2.8 \share \cmake- 2.8 \Modules\CheckIncludeFile.c.in; C:\cmake\Source\cmConfigure.cmake.h.in; C:\cmake\Source\cmVersionConfig.h.in; C:\ cmake\Source\CPack\cmCPackConfigure.h.in; C:\cmake\Source\CMakeLists.txt;%(AdditionalInputs)< / AdditionalInputs> <输出条件=“'$(配置)| $(平台)'=='Debug | Win32'”> C:\cmake\build\Source\CMakeFiles\generate.stamp< ; / Outputs> < LinkObjects Condition =“'$(Configuration)| $(Platform)'=='Debug | Win32'”> false< / LinkObjects> <消息条件=“'$(配置)| $(平台)'=='版本| Win32'”>建立自定义规则C:/cmake/Source/CMakeLists.txt< / Message> < Command Condition =“'$(Configuration)| $(Platform)'=='Release | Win32'”> setlocal “C:\Program Files\CMake 2.8 \bin \cmake.exe“-HC:/ cmake -BC:/ cmake / build --check-stamp-file C:\cmake\build\Source\CMakeFiles\generate.stamp if% errorlevel%neq 0 goto:cmEnd :cmEnd endlocal& amp; call:cmErrorLevel%errorlevel%& amp; goto:cmDone :cmErrorLevel 退出/ b%1 :cmDone 如果%errorlevel%neq 0 goto:VCEnd< / Command> < AdditionalInputs Condition =“'$(Configuration)| $(Platform)'=='Release | Win32'”> C:/cmake/Source/CMakeLists.txt; C:\cmake\Source \CMakeLists.txt; C:\Program Files \CMake 2.8 \share \cmake-2.8 \Modules\CheckIncludeFile.cmake; C:\Program Files \CMake 2.8 \share \cmake- 2.8 \Modules\CheckIncludeFile.c.in; C:\cmake\Source\cmConfigure.cmake.h.in; C:\cmake\Source\cmVersionConfig.h.in; C:\ cmake\Source\CPack\cmCPackConfigure.h.in; C:\cmake\Source\CMakeLists.txt;%(AdditionalInputs)< / AdditionalInputs> < Outputs Condition =“'$(Configuration)| $(Platform)'=='Release | Win32'”> C:\cmake\build\Source\CMakeFiles\generate.stamp< ; / Outputs> < LinkObjects Condition =“'$(Configuration)| $(Platform)'=='Release | Win32'”> false< / LinkObjects> <消息条件=“'$(配置)| $(平台)'=='MinSizeRel | Win32'”>建立自定义规则C:/cmake/Source/CMakeLists.txt< / Message> < Command Condition =“'$(Configuration)| $(Platform)'=='MinSizeRel | Win32'”> setlocal “C:\Program Files \CMake 2.8 \bin \cmake.exe“-HC:/ cmake -BC:/ cmake / build --check-stamp-file C:\cmake\build\Source\CMakeFiles\generate.stamp if% errorlevel%neq 0 goto:cmEnd :cmEnd endlocal& amp; call:cmErrorLevel%errorlevel%& amp; goto:cmDone :cmErrorLevel 退出/ b%1 :cmDone 如果%errorlevel%neq 0 goto:VCEnd< / Command> < AdditionalInputs Condition =“'$(Configuration)| $(Platform)'=='MinSizeRel | Win32'”> C:/cmake/Source/CMakeLists.txt; C:\cmake\Source \CMakeLists.txt; C:\Program Files \CMake 2.8 \share \cmake-2.8 \Modules\CheckIncludeFile.cmake; C:\Program Files \CMake 2.8 \share \cmake- 2.8 \Modules\CheckIncludeFile.c.in; C:\cmake\Source\cmConfigure.cmake.h.in; C:\cmake\Source\cmVersionConfig.h.in; C:\ cmake\Source\CPack\cmCPackConfigure.h.in; C:\cmake\Source\CMakeLists.txt;%(AdditionalInputs)< / AdditionalInputs> < Outputs Condition =“'$(Configuration)| $(Platform)'=='MinSizeRel | Win32'”> C:\cmake\build\Source\CMakeFiles\generate.stamp< ; / Outputs> < LinkObjects Condition =“'$(Configuration)| $(Platform)'=='MinSizeRel | Win32'”> false< / LinkObjects> <消息条件=“'$(配置)| $(平台)'=='RelWithDebInfo | Win32'”>建立自定义规则C:/cmake/Source/CMakeLists.txt< / Message> < Command Condition =“'$(Configuration)| $(Platform)'=='RelWithDebInfo | Win32'”> setlocal “C:\Program Files\CMake 2.8 \bin \cmake.exe“-HC:/ cmake -BC:/ cmake / build --check-stamp-file C:\cmake\build\Source\CMakeFiles\generate.stamp if% errorlevel%neq 0 goto:cmEnd :cmEnd endlocal& amp; call:cmErrorLevel%errorlevel%& amp; goto:cmDone :cmErrorLevel 退出/ b%1 :cmDone 如果%errorlevel%neq 0 goto:VCEnd< / Command> < AdditionalInputs Condition =“'$(Configuration)| $(Platform)'=='RelWithDebInfo | Win32'”> C:/cmake/Source/CMakeLists.txt; C:\cmake\Source \CMakeLists.txt; C:\Program Files \CMake 2.8 \share \cmake-2.8 \Modules\CheckIncludeFile.cmake; C:\Program Files \CMake 2.8 \share \cmake- 2.8 \Modules\CheckIncludeFile.c.in; C:\cmake\Source\cmConfigure.cmake.h.in; C:\cmake\Source\cmVersionConfig.h.in; C:\ cmake\Source\CPack\cmCPackConfigure.h.in; C:\cmake\Source\CMakeLists.txt;%(AdditionalInputs)< / AdditionalInputs> < Outputs Condition =“'$(Configuration)| $(Platform)'=='RelWithDebInfo | Win32'”> C:\cmake\build\Source\CMakeFiles\generate.stamp< ; / Outputs> < LinkObjects Condition =“'$(Configuration)| $(Platform)'=='RelWithDebInfo | Win32'”> false< / LinkObjects> < / CustomBuild> < / ItemGroup>
和:
< ItemGroup> < ProjectReference Include =“C:/cmake/build/ZERO_CHECK.vcxproj”> < Project> FE0DC35D-28F6-4786-A563-DFE14862A57F< / Project> < / ProjectReference> < / ItemGroup>
这可以防止CMakeLists.txt在每次构建之前检查更改的行为。如果项目文件中的所有其他路径都是相对的,cmake项目现在可以在硬盘上自由移动。
这个自定义构建步骤的问题是:在Visual Studios项目设置中,因此必须手动编辑纯文本.vcxproj。
这篇关于error MSB6006: “cmd.exe”已退出,代码为 1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!