2010-02-09 35 views
1

我目前正在開發一個平臺獨立項目,並且我們經常遇到以下問題: 當Windows工作人員處理的代碼不是由代碼的其他任何部分調用時將不會被編譯,因此不會觸發編譯錯誤。一旦將這段代碼上傳到svn服務器,Linux程序員就可以獲取並編譯這段代碼,它們將會出現構建錯誤。看起來他們的編譯器編譯了包含在代碼庫中的所有東西,而Visual Studio只會編譯用過的代碼。編譯Visual Studio中的所有代碼部分

是否有任何方法強制Visual Studio編譯即使未使用的代碼,只要它屬於我目前正在使用的項目?或者只是屬於解決方案的每個代碼文件都會有幫助。

編輯:

忘了提,以防它是相關的:

  • 我們使用:Visual Studio 2008的教授。編輯。
  • C++
  • CMake的創建解決方案
  • Windows 7的64位

感謝您的時間!

問候, 揚

+0

我懷疑「編譯一切」的區別。唯一可能發揮作用的是模板在實例化之前的深度分析。或者你談論**鏈接器**錯誤? VS可能會更好地消除死代碼。請澄清 – peterchen 2010-02-09 13:34:25

回答

-1

如何用預處理器定義的工作?我也從事一個跨平臺項目。有一些我無法使用的UNIX方法,並且有一些WIN API調用UNIX不能使用。所以我們有這樣的事情:

void DoSomething() 
{ 
    #ifdef WIN 
    // do Windows specific code 
    #else 
    // do UNIX specific code 
    #endif 
} 
+0

感謝您的回答,但這個問題不是關於代碼不是跨平臺兼容的。這是關於在兩種平臺上編譯的代碼,但不會在Visual Studio中捕獲,因爲Visual Studio不會嘗試編譯它。因此,我們最終將代碼上傳到SVN,而不會爲Linux程序員編譯代碼,因爲他們的編譯器似乎試圖編譯Visual Studio忽略的代碼。 -Jan- – Jan 2010-02-09 10:20:44

相關問題