2016-06-14 90 views
0

我做了一個簡單的hello世界程序。我點擊「開始調試」,窗口顯示「項目已過時,你想建立它嗎?」當我點擊「是」時,下一個窗口顯示「有構建錯誤,你想繼續並運行最後的成功構建?」。我再次選擇是的,它顯示了這個窗口:(附加屏幕截圖)enter image description here調試visual c +程序時,指定的文件不能執行

+2

修復構建錯誤 – tkausl

+1

調試不再對應源代碼的可執行文件有什麼意義?修復構建錯誤,然後調試! –

+0

請參閱圖像,我是初學者,所以我不知道如何解決構建錯誤。 –

回答

1

存在構建錯誤。你想繼續並運行最後的成功構建?

該問題的唯一正確答案是「否」。如果你點擊「調試」,你顯然想調試源代碼版本,而不是一些陳舊的舊版本,它不會與你在編輯器中看到的版本相匹配。

在工具中禁用該無意義消息→選項→項目和解決方案→生成並運行。對於「運行中,項目過期時」,將其設置爲「始終構建」。對於「運行時發生構建或部署錯誤時」,將其設置爲「不啓動」。

我想不出理由,爲什麼你想其他選項默認設置。如果你想啓動一箇舊的,陳舊的版本,你可以隨時手動完成。

我再次選擇yes,並顯示此窗口:「系統找不到指定的文件。」

爲什麼這是一個愚蠢的設置的另一個原因。特別是第二個,它是在發生構建錯誤時控制運行行爲的。

會發生什麼情況是,當您嘗試構建項目時,第一步是執行clean,這實際上意味着刪除舊文件。隨着舊文件的消失,它開始構建。構建失敗,你會得到一個錯誤。您要求它忽略錯誤並運行舊版本。可是等等!舊版本在構建開始時被刪除,因此它不再存在!

如果構建失敗,請返回到IDE,修復錯誤,然後重新啓動以重建。


獎勵:構建你得到的錯誤是「fatal error C1010」,這是一個相當愚蠢的錯誤可以非常混亂對那些不習慣到Visual Studio。基本上,它告訴你的是,因爲你正在使用預編譯頭文件(新項目的默認頭文件),所以每個源文件中的第一行需要包含你的預編譯頭文件。默認情況下,它被命名爲stdafx.h,所以在你的代碼文件的第一行應該是:

#include "stdafx.h" 

這應該去您包括系統頭<iostream>之前。預編譯的頭文件必須包含在該文件的非常頂端的中,否則會出現構建錯誤。

如果你不喜歡,那麼你可以關閉預編譯頭:在解決方案資源管理器中的項目

  1. 單擊鼠標右鍵,然後選擇屬性。
  2. 點擊頂部的「配置」組合框並選擇「所有配置」。
  3. 在樹形視圖中展開「C/C++」,並選擇「預編譯頭文件」。
  4. 將頂部選項「預編譯標題」設置爲「不使用預編譯標題」。
+0

謝謝。我一定會嘗試。 –

+0

是的,當我使用開始時沒有調試選項,它工作得很好。 –

0

對不起:您最近一次成功的構建被刪除較早 - 可能是由於試圖編譯/鏈接的結果。您需要修復您現有的源代碼,然後才能進行調試...

+0

也許下載被中斷。我應該怎麼做才能修復或重新安裝? –

0

似乎很多用戶的調試模式都缺少一些.dll文件。

如果您的程序在正常運行時運行,那麼您無需爲此運行調試模式,然後讓它運行。

我也能看到你寫void main()但在C++的語法好是int main(),並通過return 0;指令終止。順便說一句,考慮在這裏至少讓#include<iostream>這樣的庫之間有一個空格。

+0

也許下載被中斷。我應該怎麼做才能修復或重新安裝? –

相關問題