DSP編程技巧之32---答疑解惑哪家強(qiáng)之(7)
答疑解惑哪家強(qiáng)?當(dāng)屬我們EEPW最強(qiáng)。。。接下來繼續(xù)我們的答疑解惑。這次我們主要來看一下與編譯器和鏈接器的常見錯誤、警告有關(guān)的問題原因和解決方法。
本文引用地址:http://www.ex-cimer.com/article/267640.htm40. 如何快速定位錯誤信息?
在CCS V4及以上版本里,在編譯、鏈接之后有一些錯誤和警告是包含有鏈接的,如下圖所示。
此時可以點擊帶下劃線的超鏈接,從而顯示出詳細(xì)的錯誤信息,如下圖所示。
這個功能目前還沒有非常智能化,例如下面的錯誤就沒有更詳細(xì)的提示信息。此時需要我們根據(jù)錯誤描述去嘗試解決了。
上面的錯誤解決起來也容易,它的意思是在鏈接器選項里使用了-l選項來引用庫文件,卻沒有提供給它庫文件的信息,所以就報錯了。
41. Warning: function declared implicitly,如何解決?
這個警告是非常常見的,它表明在發(fā)生函數(shù)調(diào)用的時候,編譯器發(fā)現(xiàn)函數(shù)并沒有提前聲明。因為這只是個警告信息,所以編譯器會強(qiáng)迫自己來想象函數(shù)的參數(shù)和返回值,這樣雖然有可能可以通過編譯,結(jié)果卻是存在隱患的,它會導(dǎo)致程序在運行時很難診斷運行時錯誤,甚至可能導(dǎo)致函數(shù)的輸出與設(shè)計的功能完全不相關(guān)。
然而你也可能會疑惑:一般大家都知道先聲明再使用的原則,函數(shù)我已經(jīng)在頭文件里定義了啊?此時的問題是函數(shù)調(diào)用發(fā)生在頭文件引用之前了,只要把頭文件引用放在函數(shù)調(diào)用之前就能解決此問題,通常把頭文件的引用放在調(diào)用這個函數(shù)的源程序的開頭就好了。
42. Error: could not open source file "xxx.h",如何解決?
這個錯誤有點灰色幽默的感覺: 明明看到頭文件就在工程列表里,我們雙擊也能打開它,編譯器卻就是死活不認(rèn)識,還要報出什么致命性的錯誤。
解決此錯誤可以使用下面的步驟:
1. 檢查頭文件是否存在,并確認(rèn)其名字是否正確。
2. 經(jīng)檢查發(fā)現(xiàn)不存在上面的問題,則此時需要手動把頭文件的路徑指定給編譯器。在CCS工程管理器中右鍵點擊工程名,選擇屬性,并切換到頭文件對應(yīng)的選項卡,如下圖所示??梢渣c擊圖中的方框框出來的+鏡像添加,路徑則即可以使用相對路徑,也可以使用絕對路徑,使用相對路徑更容易方便工程的移動。
注:上圖中的ProjName是編譯器中內(nèi)置的系統(tǒng)變量,我們可以很方便地使用它們來構(gòu)建頭文件、庫文件等的相對路徑,如下圖所示。
c++相關(guān)文章:c++教程
評論