DSP編程技巧之5---揭開(kāi)編譯器神秘面紗之調(diào)試與路徑選項(xiàng)
然后針對(duì)初學(xué)者經(jīng)常遇到的找不到頭文件或者宏定義的問(wèn)題,這個(gè)貌似是大多數(shù)初學(xué)者在新建工程時(shí)、添加完文件然后編譯程序時(shí)都會(huì)遇到的:明明看見(jiàn)頭文件它就在那里了,可是編譯器就是不認(rèn)識(shí)它;或者在CCS里面已經(jīng)打開(kāi)了頭文件能看到內(nèi)容了,可是編譯器一直在提示xxx.h頭文件打不開(kāi)。因?yàn)轭^文件里定義了各種各樣的變量、結(jié)構(gòu)體、宏定義甚至函數(shù)聲明等,所以一個(gè)頭文件找不到的話(huà)往往會(huì)帶來(lái)幾十個(gè)上百個(gè)“未定義”相關(guān)的錯(cuò)誤。在此我們就看一下編譯器的包含選項(xiàng),理解了它的使用方法,自然就不會(huì)再遇到類(lèi)似的問(wèn)題了。
本文引用地址:http://www.ex-cimer.com/article/215181.htm表2 編譯器的包含選項(xiàng)
選項(xiàng) |
別名 |
優(yōu)化的效果 |
--include_path=directory |
-I |
用來(lái)定義引用頭文件時(shí)#include中文件的路徑。這個(gè)不難理解,基本上就是指代我們?cè)诔绦蛑幸妙^文件時(shí)制定的頭文件的路徑。初學(xué)者經(jīng)常遇到的問(wèn)題就是頭文件找不到,然后出現(xiàn)一大堆的調(diào)試錯(cuò)誤,所以要掌握這個(gè)選項(xiàng)。 Ø 在引用頭文件時(shí),如果使用雙引號(hào)”xxx.h”進(jìn)行引用的話(huà),則編譯器在編譯時(shí)按照下面的順序和路徑依次進(jìn)行尋找: 1. 從任何引用了xxx.h的源程序所在的文件夾里進(jìn)行搜索。所以在編譯時(shí)如果提示缺失xxx.h文件,最快捷的方法就是找到這頭文件把它放在源程序所在的文件夾里(當(dāng)然這樣不利于有條理地管理工程文件)。 2. 從-I參數(shù)中所制定的路徑里面搜索。 3. 從安裝CCS時(shí)生成的C2000_C_DIR環(huán)境變量指向的路徑里面搜索。 Ø 在引用頭文件時(shí),如果使用尖括號(hào)<xxx.h>進(jìn)行引用的話(huà),則編譯器在編譯時(shí)按照下面的順序和路徑依次進(jìn)行尋找: 1. 從-I參數(shù)中所制定的路徑里面搜索。 2. 從安裝CCS時(shí)生成的C2000_C_DIR環(huán)境變量指向的路徑里面搜索。 觀(guān)察兩種頭文件引用方法的共同點(diǎn),我們可以得出,除了系統(tǒng)自帶的頭文件,例如<math.h>這樣的我們不需要管它之外,我們自己定義和使用的頭文件一定要使用-I參數(shù)把路徑定義好,就不會(huì)再有什么頭文件打不開(kāi)、不存在之類(lèi)的錯(cuò)誤了。那如果頭文件有多個(gè)路徑進(jìn)行存儲(chǔ)怎么辦呢?只要多次使用-I參數(shù)就行了,例如: -i"....DSP2833x_headersinclude" -i"....DSP2833x_commoninclude" |
--preinclude=filename |
|
在編譯開(kāi)始時(shí)指定源程序的文件名filename。這個(gè)選項(xiàng)主要用來(lái)建立標(biāo)準(zhǔn)的宏定義。這些文件名的搜索也按照-I定義的路徑來(lái)進(jìn)行,并按照制定的順序編譯。 |
評(píng)論