2011-09-29 80 views
0

這很奇怪,因爲大部分編譯都很好,但是這個項目(主要DLL項目,鏈接到許多庫項目中)只是拒絕。它只編譯CK20_Test.cpp,然後繼續鏈接。如果我排除那個,它只編譯DebugInfo.cpp和鏈接。等等。VS2008項目只編譯x64目標中的1個C++文件

如果我切換到Win32目標,它會編譯一切正常。

微軟的Visual Studio 2008 版本9.0.21022.8 RTM, 的Microsoft .NET Framework, 3.5版SP1, 的Microsoft Visual C++ 2008 91605-130-0691883-60531

和一堆安裝標準的修補程序。

1>------ Rebuild All started: Project: XMD, Configuration: DebugR x64 ------ 
1>Deleting intermediate and output files for project 'XMD', configuration 'DebugR|x64' 
1>Compiling... 
1>stdafx.cpp 
1>Compiling manifest to resources... 
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 
1>Copyright (C) Microsoft Corporation. All rights reserved. 
1>Linking... 
1>LINK : D:\prj\alpha\64\shared\x64\DebugR\XMDCore.dll not found or not built by the last incremental link; performing full link 
1>Embedding manifest... 
1>Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0 
1>Copyright (C) Microsoft Corporation. All rights reserved. 
1>Build log was saved at "file://d:\prj\alpha\64\shared\xmd\x64\DebugR\BuildLog.htm" 
1>XMD - 0 error(s), 0 warning(s) 
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ========== 

編輯:配置另一臺計算機。同樣的問題。我覺得項目文件必須被破壞(請參閱下面關於內容的評論),否則編譯器會混亂。但我無法想象我會如何解決它。

+0

您可以發佈您的構建控制檯輸出?或者你的構建日誌? –

+0

重建(僅限項目)日誌。 –

+1

你說它編譯CK20_Test.cpp,但我沒有看到它在構建日誌中... –

回答

0

問題解決了! C++輸出文件對象文件名設置(/ Fo)爲$(IntDir)。

當我在x64中編譯時,程序生成了DebugR.obj。 在Win32編譯器中,產生DebugR \ $(InputName).obj的設置相同。

同樣適用於發佈或調試配置。

解決方法:更改$(IntDir)到$(IntDir)\