NXT-G 編譯錯誤: Internal compile error

撰文: 謝宗翰老師

在WRO決賽前夕,各隊都卯足了勁來修改與測試機器人。昨天復興高中的一位老師向我求助,他們的NXT-G程式無法下載至NXT中,出現的是"Internal compile error",讓他們很苦惱。

Internal compile error,即"內部編譯錯誤",從字面上來看可以理解成程式有錯誤或毀損而無法編譯,在NXT-G中,一般不常出現這種狀況,因為它不像NXC程式語言會有語法錯誤等情形,或像LabVIEW有資料流連線未刪除等問題。然而,一旦出現問題可就麻煩了。一般高階程式語言在編譯時,若是有錯誤編譯器都會指出錯誤位置,像NXC會指出錯誤的程式在第幾行,而LabVIEW則是會指出錯誤的指令或連線。然而在NXT-G由於預期程式不會有錯誤,所以也就沒有指出錯誤的功能,所以當真的有錯誤時,只會告訴您出現了錯誤,而不會告訴您在哪裡,這時我們就要自己來檢查。

在收到他們的程式後,經過一番檢查,總算讓我看到了錯誤,如下圖所示:

從圖中可以看到,程式不知道為什麼在框起來的地方斷掉了,也因此造成程式無法編譯而出現錯誤。這個錯誤在程式龐大時很難發現,然而只要發現就很好解決,只要把這一小段程式刪除重新再拉一遍即可。

會出現這樣的錯誤可能的原因為使用者自己用滑鼠拉長程式的主要流連桿,因為沒拉好造成錯誤,或者是在貼上程式碼時沒有對好而造成錯誤。

以上提供給各位參考,以後出錯時別驚慌,將程式一段一段刪除來除錯(debug)會是個不錯的方法。

最後也恭喜復興高中在這次比賽包辦台北市第一名與第三名!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *