2015-11-04 146 views
0

preemtively問這個問題,因爲沒有太多可以找到關於此錯誤代碼後,用代碼1退出。解決這個問題相當微不足道,但是由於沒有給出適當的錯誤信息,我花費了很多時間來診斷。錯誤MSB6006:「CL.EXE」添加模板函數或

那麼發生了什麼?

  • 我添加模板功能,我的項目現在
  • 當項目編譯,彈出一個消息說,CL.exe有一個問題,需要被關閉
  • 的Visual Studio中止編譯與error MSB6006: "CL.exe" exited with code 1

問題是我的模板函數中的語法錯誤。誰能猜到。

然而,這是很難找到的,因爲這些並沒有得到報告。查看我的答案,瞭解如何確定哪些功能有缺陷。

模板化功能均包含在頭一個.cpp,然而,在頭完全確定他們沒有任何區別。

// foo.h 

template <typename T> 
void foo(); 

... 

#include "foo.cpp" 



// foo.cpp 

template <typename T> 
void foo() 
{ 
... 
} 
+0

您是否在頭文件中定義了函數模板? – emlai

回答

2

首先你需要編譯所有的.cpp文件,其中包括模板功能seperately(選擇一個在項目資源管理器,右擊「編譯」)。

對我來說,第一個暗示是,他們中的一些編制,而對另一些cl.exe墜毀。

下一步是要創造一個bogus.cpp文件只有一個功能,其中一個接一個,我添加到我創建的每個模板函數調用。添加一個之後:重新編譯。這進展順利,直到我找到有缺陷的,現在bogus.cpp也墜毀cl.exe。大獎。

最後一個作業是固定的語法錯誤,這是沒有錯誤消息煩人,但一旦做到這一點,bogus.cpp將再次編譯。返回到在那裏添加更多函數調用,直到你覆蓋了所有內容。

希望我能幫上忙。