2012-07-09 333 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版解決了這個問題。