作者:paradoxfx 來源:電子產品世界 在對編譯器/鏈接器的各個選項的分析中,我們多次提到了“符號(symbol)”這個概念,而DSP調試的過程,往往也有個顯著的特點,叫“符號調試”。每個可充定位目標模塊都有一個符號表,它包含了模塊中所定義和使用的符號的信息。在鏈接器的上下文中,有三種不同的符號: 1. 在目標模塊中定義,并能被其它模塊所引用的符號全局符號。全局鏈接器符號對應于非靜態的C函數以及被定義為不帶C static屬性的全局變量。 2. 由其它模塊所定義,并在當前目標模塊中被引用的全局符號,這些符號被定義為外部符號(external),對應于定義為其它模塊中的C函數和變量。例如我們在一個C文件中使用extern來聲明某個在外部文件中定義的變量,這樣就可以跨文件使用這個全局變量的值。 3. 只能被當前目標模塊定義和使用的本地符號,它在當前模塊中可見,但是在其它模塊中無法被引用。在編譯產生的目標文件中,對應于目標模塊的段和相應的源文件的名字也能獲得本地符號。 了解了符號的詳細含義之后(這些內容多少和計算機系統有些關系,推薦看一下《深入理解計算機系統》或者類似的書籍,可以加深了解),我們便來看一下與符號有關的鏈接器選項,如表1所示。 表1 符號選項 表2 實時運行環境選項 表3 鏈接時優化選項 表4 其它雜項 |