2012-07-09 37 views
1

我想在VS2010 C++项目上运行fortify。我创建了一个非常简单的Hello World项目,并试图运行使用下面的命令巩固:Fortify on Visual Studio 2010 C++项目 - 错误MSB6006:-1073741701

sourceanalyzer.exe -b sample devenv sample.sln /REBUILD

我不断收到此错误:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(147,5): error MSB6006: "CL.exe" exited with code -1073741701.

完整的构建日志:

Microsoft (R) Visual Studio Version 10.0.30319.1. 
Copyright (C) Microsoft Corp. All rights reserved. 
1>------ Rebuild All started: Project: sample, Configuration: Debug Win 
32 ------ 
1>Build started 09/07/2012 12:13:33 PM. 
1>_PrepareForClean: 
1> Deleting file "Debug\sample.lastbuildstate". 
1>InitializeBuildStatus: 
1> Creating "Debug\sample.unsuccessfulbuild" because "AlwaysCreate" was specified. 
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets(147,5): error MSB6006: "CL.exe" exited with code -1073741701. 
1> 
1>Build FAILED. 
1> 
1>Time Elapsed 00:00:00.09 

我没有得到任何额外的错误。我的操作系统是Windows7 64位。我的项目是一个32位控制台应用程序。我使用fortify 32位与版本:“Fortify源代码分析器5.9.5.0007”

我试着浏览微软网页的错误,但它显然是一个通用的错误代码。我怀疑不兼容,但无法缩小范围。你能告诉我我要去哪里吗?


更新:一些更多的信息:

随着VS2010的cl.exe时,它清晰地运行。这个错误是由Fortify的cl.exe抛出的。我检查了错误代码,显然,cl.exe无法启动。我用依赖walker进行交叉检查,并且缺少一些dll(gpsvc.dll和IEShims.dll)。我有一个64位Windows安装,但cl.exe是32位,我没有这些DLL的32位版本。我不确定这是否是根本原因,因为它们延迟加载并且可能不会导致所述的错误。

+0

它看起来并没有进入Fortify扫描。您可以尝试使用CL.exe从命令提示符构建解决方案,并查看是否得到相同的错误? – LaJmOn 2012-07-09 13:53:18

+0

我检查并更新了结果的问题... – go4sri 2012-07-09 14:53:33

+0

-1073741701是十六进制的0xC000007B,它是'STATUS_INVALID_IMAGE_FORMAT'。所以Fortify的cl.exe不是Windows加载程序知道如何执行的有效可执行文件。 – 2012-07-09 15:01:06

回答

2

问题出在Fortify版本。下载Fortify360 3.2版解决了这个问题。