error MSB6006: "cmd.exe" exited with code 4.解决方法

这段时间在调试cefclient的代码,发现在编译的时候总是出错,出错信息如下:

1>CustomBuild:
1>  copy_resources, and also copy_libraries
1>  D:\MyCode\MyGit\CEFStudy\Resources\cef.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\cef.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\devtools_resources.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\devtools_resources.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\am.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\am.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ar.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ar.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\bg.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\bg.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\bn.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\bn.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ca.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ca.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\cs.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\cs.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\da.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\da.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\de.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\de.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\el.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\el.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\en-GB.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\en-GB.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\en-US.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\en-US.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\es-419.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\es-419.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\es.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\es.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\et.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\et.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\fa.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\fa.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\fi.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\fi.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\fil.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\fil.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\fr.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\fr.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\gu.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\gu.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\he.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\he.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\hi.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\hi.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\hr.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\hr.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\hu.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\hu.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\id.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\id.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\it.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\it.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ja.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ja.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\kn.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\kn.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ko.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ko.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\lt.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\lt.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\lv.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\lv.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ml.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ml.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\mr.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\mr.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ms.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ms.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\nb.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\nb.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\nl.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\nl.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\pl.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\pl.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\pt-BR.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\pt-BR.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\pt-PT.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\pt-PT.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ro.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ro.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ru.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ru.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\sk.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\sk.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\sl.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\sl.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\sr.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\sr.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\sv.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\sv.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\sw.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\sw.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\ta.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\ta.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\te.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\te.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\th.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\th.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\tr.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\tr.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\uk.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\uk.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\vi.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\vi.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\zh-CN.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\zh-CN.pak
1>  D:\MyCode\MyGit\CEFStudy\Resources\locales\zh-TW.pak -> D:\MyCode\MyGit\CEFStudy\out\Debug\locales\zh-TW.pak
1>  复制了 55 个文件
1>  复制了 0 个文件
1>  找不到文件 - *.dll
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.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:\MyCode\MyGit\CEFStudy\Debug\d3dcompiler_43.dll -> D:\MyCode\MyGit\CEFStudy\out\Debug\d3dcompiler_43.dll
1>  D:\MyCode\MyGit\CEFStudy\Debug\d3dcompiler_46.dll -> D:\MyCode\MyGit\CEFStudy\out\Debug\d3dcompiler_46.dll
1>  D:\MyCode\MyGit\CEFStudy\Debug\ffmpegsumo.dll -> D:\MyCode\MyGit\CEFStudy\out\Debug\ffmpegsumo.dll
1>  D:\MyCode\MyGit\CEFStudy\Debug\icudt.dll -> D:\MyCode\MyGit\CEFStudy\out\Debug\icudt.dll
1>  D:\MyCode\MyGit\CEFStudy\Debug\libcef.dll -> D:\MyCode\MyGit\CEFStudy\out\Debug\libcef.dll
1>  D:\MyCode\MyGit\CEFStudy\Debug\libEGL.dll -> D:\MyCode\MyGit\CEFStudy\out\Debug\libEGL.dll
1>  D:\MyCode\MyGit\CEFStudy\Debug\libGLESv2.dll -> D:\MyCode\MyGit\CEFStudy\out\Debug\libGLESv2.dll
1>  复制了 7 个文件

而我的代码就是缺少了这几个文件,于是拷贝到同一个相对目录下,编译成功,问题得到解决。

然后就有些疑问了,编译的时候是如何拷贝文件的呢?逐一检查Project的属性,没发现有异常。搜索copy_resources,只在cefclient.gyp里找到相应的字符串。可是这个.gyp跟project应该没有任何关系的呀?

继续跟进,将cefclient.vcxproj用记事本打开,发现如下配置信息:‘

  <ItemGroup>
    <CustomBuild Include="binary_distrib\cef_binary_3.1650.1562_windows32\cefclient.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的机制是什么?这个后续再继续研究。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值