廢話有點多如果趕時間請拉到最下面。
最近因為作業需要所以用到了<graphics.h>這個標頭檔。
老師已經先給了一段程式碼,但是!!
執行時卻跑出了這樣的錯誤訊息:
undefined reference to _unwind_resume'
undefined reference to __gxx_personality_v0'
這到底是啥阿= =,簡單來說就是我GG了??!
於是只好先請教google大神,
大神表示:<graphics.h>是一個很老舊的標頭檔,
一些比較新的IDE都已經捨棄他不用了,
但是很多大學(= =)仍然要求學生使用這個標頭檔,
於是我們就必須做一些簡單的環境建置。
可以參考以下影片,這是手把手的YouTube影片教導:
不過很不幸的是,我失敗了= =。
並且在過程中還一度遇到編譯器給出錯誤訊息諸如:
重複宣告int right、cannot find -lole32?、cannot find -lbgi等,
重複宣告的問題我就沒有研究出來了,
至於cannot find - 這一類的錯誤訊息通常指的是
編譯器找不到指定的系統檔案。
不過雖然到了但是無解。
於是這次只好改請教班上其他大神:
這次得到的是 這個 :
跟第一個很相似但他沒有去動graphics.h檔。
他大概是這樣說的:
去 這裡 下載WinBGIm所需的三個檔案然後解壓縮
把graphics.h和winbgim.h檔放到MinGW裡的include資料夾,
libbgi.a檔放到lib資料夾,
然後打開code::blocks
Settings >> Compiler and debugger >>linker settings
點選Add鍵然後瀏覽,選擇libbgi.a檔,
在右邊(other linker options)則貼上
-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32
完成之後再編譯看看。
如果還是不行的話,
那我也沒辦法了嗚嗚。
然後很不幸我其實就是那個還是不行的可憐蟲。
經過一番折騰與各種神奇的錯誤訊息(那些我就沒記下了),
我最後決定,重灌code blocks EP!
包含winbgim裡的那三個檔案都一起重新安裝一遍,
然後~就好了QQ,
雖然是這麼雲淡風輕的三個字但是看到視窗成功跳出的那一刻我真是各種感動阿XD!
不過到了隔天再開啟電腦再執行程式的時候,
居然又跑
undefined reference to _unwind_resume'
undefined reference to __gxx_personality_v0'
出來了?!!
這次我淡定的再度把重複code blocks EP重新安裝的步驟...
然後又恢復正常了,
然後隔天又不正常了,
X的!!我終於發現不對勁了!
結果~根本把筆電重新開機就好了阿阿阿阿阿!
雖然一度在想該不會從頭到尾就是筆電的問題,
不過應該是不可能,大家還是裝一下winbgim比較好,
如果各位的老師也是要求要用<graphics.h>的話。
但是又過了幾天,我居然聽到...
有同學根本啥也沒做就直接可以編譯了拉(哭。
總之如果因為<graphics.h>而各位有遇到一些錯誤訊息的話:
建議大家就照著 這個網站 做:
然後如果還是不行的話可以重新開機看看或者乾脆重裝你的IDE。
專案部份我是選擇code blocks Ep的winbgim project,
然後選擇add console。
大概就是這樣~希望有幫到大家!!