建立新專案、編譯、與執行 ·...

20
建立新專案、編譯、與執行 使用 Dev-C++ 來發展一個新的 C++ 程式時,第一個步驟就是要建立新專案來存放所有的相關檔案。通常我們用一個資料 夾來存放一個專案。 本文介紹建立新專案的步驟。 建立新專案 開啟 Dev-C++ 後,請選擇功能表指令「檔案 -> 開新檔案 -> 專案」來建立新專案: 如下圖所示的視窗中,我們選取 Console Application、填入專案名稱(此名稱將成為執行檔的名稱)、以及勾選「C++ 案」與 「設成開新專案所預設的語言」這項。 建立新專案、編譯、與執行 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/newproj.html 17 2008/9/9 下午 02:54

Transcript of 建立新專案、編譯、與執行 ·...

Page 1: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

建立新專案、編譯、與執行

使用 Dev-C++ 來發展一個新的 C++ 程式時,第一個步驟就是要建立新專案來存放所有的相關檔案。通常我們用一個資料夾來存放一個專案。

本文介紹建立新專案的步驟。

建立新專案

開啟 Dev-C++ 後,請選擇功能表指令「檔案 -> 開新檔案 -> 專案」來建立新專案:

如下圖所示的視窗中,我們選取 Console Application、填入專案名稱(此名稱將成為執行檔的名稱)、以及勾選「C++ 專案」與 「設成開新專案所預設的語言」這項。

建立新專案、編譯、與執行 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/newproj.html

1/7 2008/9/9 下午 02:54

Page 2: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

通常我們會把所有專案放在某一資料夾之下。移到此資料夾之後,若尚未建立此專案的資料夾,我們可以用下圖所示的按鈕來建立新資料夾:

我們通常把專案資料夾的名稱取成和專案名稱一樣:

移到專案資料夾之後,按「儲存」:

建立新專案、編譯、與執行 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/newproj.html

2/7 2008/9/9 下午 02:54

Page 3: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

Dev-C++ 會自動產生 main.cpp 主程式,其內容如下圖所示。我們先按 「儲存」鈕來存 main.cpp 檔並將其加入專案。

把 main.cpp 存放至專案資料夾中:

建立新專案、編譯、與執行 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/newproj.html

3/7 2008/9/9 下午 02:54

Page 4: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

展開右邊的專案樹,可以看到 main.cpp 已經加入 hello 專案中。

編譯

我們可以按「編譯」鈕來編譯目前的專案程式檔,如下圖所示:

建立新專案、編譯、與執行 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/newproj.html

4/7 2008/9/9 下午 02:54

Page 5: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

若程式語法有誤,Dev-C++ 會標示出發生錯誤的地方,以及列出相關的錯誤訊息。當你 double-click 錯誤訊息行時,Dev-C++ 會自動跳至對應的錯誤行。

發生編譯錯誤時,我們通常只先更正前面幾項錯誤,就重新編譯,而不是一次全更正過來,這是因為許多列在後面的錯誤是前面錯誤所引發的,而不是真正發生錯誤。

建立新專案、編譯、與執行 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/newproj.html

5/7 2008/9/9 下午 02:54

Page 6: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

執行

編譯成功後,按下「執行」鈕後,Dev-C++ 會產生一個「命令提示字元」視窗來執行程式。所有的程式輸入與輸出都透過此視窗進行。

下圖列出 Dev-C++ 編譯/執行的相關按鈕:

編譯:編譯專案中更新過的檔案和與其相依的檔案。

執行:執行編譯成功的程式。

編譯並執行:編譯專案,若成功則執行所產生的程式。

全部重新編譯:編譯專案中的所有程式原始檔。

除錯:用除錯器來執行程式。

程式執行正確後,我們可以按「全部重新編譯」來產生程式執行檔,它可以在專案資料夾中找到,如下圖所示:

建立新專案、編譯、與執行 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/newproj.html

6/7 2008/9/9 下午 02:54

Page 7: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

建立新專案、編譯、與執行 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/newproj.html

7/7 2008/9/9 下午 02:54

Page 8: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

開啟舊專案

你可以用以下的方法來開啟 Dev-C++ 的舊專案。

方法一:用功能表指令或便捷按鈕

開啟舊專案 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/oldproj.html

1/3 2008/9/9 下午 02:54

Page 9: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

方法二:最近開啟的檔案

方法三:在專案資料夾中開啟

開啟舊專案 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/oldproj.html

2/3 2008/9/9 下午 02:54

Page 10: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

開啟舊專案 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/oldproj.html

3/3 2008/9/9 下午 02:54

Page 11: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

將檔案加入專案

程式所有的原始檔(.cpp 和 .h)都必須加入專案中才能正確地編譯。

新增原始檔

你可以按下圖所示的按鈕來新增一個原始檔,並在確認對話框中按「Yes」。

新增的檔案以「新文件」命名:

將檔案加入專案 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/addproj.html

1/4 2008/9/9 下午 02:54

Page 12: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

編寫存檔之後的畫面:

將檔案加入專案 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/addproj.html

2/4 2008/9/9 下午 02:54

Page 13: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

加入舊檔

如果要加入舊檔(別人寫的或用其他編輯器寫的),可以用下圖所示的按鈕,然後將其加入專案:

將檔案加入專案 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/addproj.html

3/4 2008/9/9 下午 02:54

Page 14: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

將檔案加入專案 http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/addproj.html

4/4 2008/9/9 下午 02:54

Page 15: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

偵錯器(debugger)

若程式執行的結果不正確,偵錯器可用來輔助我們追蹤出錯誤之所在。在偵錯器的控制之下,我們可

以逐行地執行程式、設定中斷點( b reak poin ts)、檢視變數的值。許多程式的錯誤可以利用這些技巧迅速地找出來,因而減少偵錯所需的時間與精力。

啟用偵錯器

只要按下圖所示的按鈕就能啟用偵錯器。由於偵錯器需要一些額外的資訊,因此 Dev-C++ 會要求你重新編譯專案,所以請在確認對話框中按「Yes」。

執行至游標所在位置

若你想讓程式執行至程式中某一行後暫停,可先把游標移至該行,然後選功能表指令「除錯 -> 執行到游標位置」(或按鍵盤 Sh if t -F4),如下圖所示:

偵錯器(debugger) http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/debugger.html

1/6 2008/9/9 下午 02:54

Page 16: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

下圖是執行後的畫面:

偵錯器(debugger) http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/debugger.html

2/6 2008/9/9 下午 02:54

Page 17: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

單步執行

若想一行一行地執行程式,則選功能表指令「除錯 -> 單步執行」(或按鍵盤 F7)

偵錯時,我們可以利用視窗下方偵錯面板中的按鈕來下達偵錯指令:

進出函式

若程式行包含函式呼叫,我們可以用「追蹤入函式」按鈕讓偵錯器進入該函式,以進行該函式的偵

錯。若該函式已確定無錯誤,我們可以用「跳過函式單步執行」按鈕讓偵錯器執行程式直到下一個中

斷點為止。

加入 /移除中斷點

我們可以在程式行上加入中斷點(break poin t),使得偵錯器執行程式至此行時,自動暫停。只要在編輯視窗的黑色區按一下滑鼠左鍵,就可以加入一個中斷點,如下圖所示:

偵錯器(debugger) http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/debugger.html

3/6 2008/9/9 下午 02:54

Page 18: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

在中斷點上再按一下滑鼠左鍵,就可以移除它。

每按一下除錯鈕( ),偵錯器就執行至下一個碰到的中斷點,若碰不到就執行至程式結束。

使用中斷點的時機:

想追蹤程式的流程,譬如:檢查條件敘述是否如預期地執行正確的選擇。

想在某一程式行檢視當時若干變數的值是否正確。

監看式

偵錯時,我們可以檢視變數或算式的值來查出異常狀況。你可以用以下的方式來新增監看式:

按除錯面板中的「新增監看式」鈕

在左方除錯 /監看面板的空白處按滑鼠右鍵,然後選「新增監看式」選功能表指令「除錯 -> 新增監看式」

偵錯器(debugger) http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/debugger.html

4/6 2008/9/9 下午 02:54

Page 19: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

然後在新增監看式對話框中輸入欲檢視的變數名稱,譬如下圖輸入的變數名稱為 sum:

下圖顯示 su m 與 i 這兩個變數在 for 迴圈之後的值 :

偵錯器(debugger) http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/debugger.html

5/6 2008/9/9 下午 02:54

Page 20: 建立新專案、編譯、與執行 · 編譯並執行:編譯專案,若成功則執行所產生的程式。 全部重新編譯:編譯專案中的所有程式原始檔。 除錯:用除錯器來執行程式。

偵錯器(debugger) http://www.cs.pu.edu.tw/~tsay/course/objprog/slides/debugger.html

6/6 2008/9/9 下午 02:54