我是靠谱客的博主 辛勤荷花,最近开发中收集的这篇文章主要介绍error MSB6006: "cmd.exe" exited with code 4.解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
这段时间在调试cefclient的代码,发现在编译的时候总是出错,出错信息如下:
1>CustomBuild:
1> copy_resources, and also copy_libraries
1> D:MyCodeMyGitCEFStudyResourcescef.pak -> D:MyCodeMyGitCEFStudyoutDebugcef.pak
1> D:MyCodeMyGitCEFStudyResourcesdevtools_resources.pak -> D:MyCodeMyGitCEFStudyoutDebugdevtools_resources.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesam.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesam.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesar.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesar.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesbg.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesbg.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesbn.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesbn.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesca.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesca.pak
1> D:MyCodeMyGitCEFStudyResourceslocalescs.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalescs.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesda.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesda.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesde.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesde.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesel.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesel.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesen-GB.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesen-GB.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesen-US.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesen-US.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleses-419.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleses-419.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleses.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleses.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleset.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleset.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesfa.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesfa.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesfi.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesfi.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesfil.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesfil.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesfr.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesfr.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesgu.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesgu.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleshe.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleshe.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleshi.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleshi.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleshr.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleshr.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleshu.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleshu.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesid.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesid.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesit.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesit.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesja.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesja.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleskn.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleskn.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesko.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesko.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleslt.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleslt.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleslv.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleslv.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesml.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesml.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesmr.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesmr.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesms.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesms.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesnb.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesnb.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesnl.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesnl.pak
1> D:MyCodeMyGitCEFStudyResourceslocalespl.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalespl.pak
1> D:MyCodeMyGitCEFStudyResourceslocalespt-BR.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalespt-BR.pak
1> D:MyCodeMyGitCEFStudyResourceslocalespt-PT.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalespt-PT.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesro.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesro.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesru.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesru.pak
1> D:MyCodeMyGitCEFStudyResourceslocalessk.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalessk.pak
1> D:MyCodeMyGitCEFStudyResourceslocalessl.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalessl.pak
1> D:MyCodeMyGitCEFStudyResourceslocalessr.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalessr.pak
1> D:MyCodeMyGitCEFStudyResourceslocalessv.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalessv.pak
1> D:MyCodeMyGitCEFStudyResourceslocalessw.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalessw.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesta.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesta.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleste.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleste.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesth.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesth.pak
1> D:MyCodeMyGitCEFStudyResourceslocalestr.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalestr.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesuk.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesuk.pak
1> D:MyCodeMyGitCEFStudyResourceslocalesvi.pak -> D:MyCodeMyGitCEFStudyoutDebuglocalesvi.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleszh-CN.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleszh-CN.pak
1> D:MyCodeMyGitCEFStudyResourceslocaleszh-TW.pak -> D:MyCodeMyGitCEFStudyoutDebuglocaleszh-TW.pak
1> 复制了 55 个文件
1> 复制了 0 个文件
1> 找不到文件 - *.dll
1>C:Program FilesMSBuildMicrosoft.Cppv4.0Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code 4.
1>
1>Build FAILED.
从上面的错误信息来看,error MSB6006。网上搜索了一下,大部分的error code都是1或者别的,没见过4的,也尝试了网上的方法,修改Manifest文件,问题依然没有解决。
于是往上面看,“找不到文件 - *.dll”,这是在做什么的时候找不到文件?想了很久没想明白,继续向上追溯,看到了
copy_resources, and also copy_libraries
而“复制了55个文件”全部是pak文件,那说明都是Resources。那“复制了0个文件”,就是libraries。找不到的dll文件,应该就是libraries。于是,用cefclient压缩包直接解压出来的源代码文件对应一下,发现源文件直接编译的Output信息如下:
1> D:MyCodeMyGitCEFStudyDebugd3dcompiler_43.dll -> D:MyCodeMyGitCEFStudyoutDebugd3dcompiler_43.dll
1> D:MyCodeMyGitCEFStudyDebugd3dcompiler_46.dll -> D:MyCodeMyGitCEFStudyoutDebugd3dcompiler_46.dll
1> D:MyCodeMyGitCEFStudyDebugffmpegsumo.dll -> D:MyCodeMyGitCEFStudyoutDebugffmpegsumo.dll
1> D:MyCodeMyGitCEFStudyDebugicudt.dll -> D:MyCodeMyGitCEFStudyoutDebugicudt.dll
1> D:MyCodeMyGitCEFStudyDebuglibcef.dll -> D:MyCodeMyGitCEFStudyoutDebuglibcef.dll
1> D:MyCodeMyGitCEFStudyDebuglibEGL.dll -> D:MyCodeMyGitCEFStudyoutDebuglibEGL.dll
1> D:MyCodeMyGitCEFStudyDebuglibGLESv2.dll -> D:MyCodeMyGitCEFStudyoutDebuglibGLESv2.dll
1> 复制了 7 个文件
而我的代码就是缺少了这几个文件,于是拷贝到同一个相对目录下,编译成功,问题得到解决。
然后就有些疑问了,编译的时候是如何拷贝文件的呢?逐一检查Project的属性,没发现有异常。搜索copy_resources,只在cefclient.gyp里找到相应的字符串。可是这个.gyp跟project应该没有任何关系的呀?
继续跟进,将cefclient.vcxproj用记事本打开,发现如下配置信息:‘
<ItemGroup>
<CustomBuild Include="binary_distribcef_binary_3.1650.1562_windows32cefclient.gyp">
<FileType>Document</FileType>
<Command>call call xcopy /efy "Resources*" "$(OutDir)"
if %errorlevel% neq 0 exit /b %errorlevel%
call call xcopy /efy "$(Configuration)*.dll" "$(OutDir)"</Command>
<Message>copy_resources, and also copy_libraries</Message>
<Outputs>$(OutDir)copy_resources.stamp</Outputs>
</CustomBuild>
</ItemGroup>
看到这里的Command,就能解释究竟是谁拷贝文件了。xcopy就是拷贝文件的command。
只是这些CustomBuild的配置,在Project的配置里还是没发现在哪里。而且这是如何运行起来的,CustomBuild的机制是什么?这个后续再继续研究。
最后
以上就是辛勤荷花为你收集整理的error MSB6006: "cmd.exe" exited with code 4.解决方法的全部内容,希望文章能够帮你解决error MSB6006: "cmd.exe" exited with code 4.解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复