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