例如: 有一個(gè)文件,存儲(chǔ)了4個(gè)常量數(shù)組,分別為A,B,C,D。如果代碼中只引用了A和D數(shù)組,那么編譯后的目標(biāo)文件中,數(shù)組B和C的內(nèi)容,編譯器會(huì)自動(dòng)忽略掉。
我需要是:無論代碼中是否引用數(shù)組B和C, 以及其他沒有使用的常量數(shù)組,編譯的時(shí)候仍然要保留它的存儲(chǔ)位置。請(qǐng)問如何設(shè)置編譯器選項(xiàng)。
例如: 有一個(gè)文件,存儲(chǔ)了4個(gè)常量數(shù)組,分別為A,B,C,D。如果代碼中只引用了A和D數(shù)組,那么編譯后的目標(biāo)文件中,數(shù)組B和C的內(nèi)容,編譯器會(huì)自動(dòng)忽略掉。
我需要是:無論代碼中是否引用數(shù)組B和C, 以及其他沒有使用的常量數(shù)組,編譯的時(shí)候仍然要保留它的存儲(chǔ)位置。請(qǐng)問如何設(shè)置編譯器選項(xiàng)。
找了編譯器中的不強(qiáng)制刪除無用數(shù)據(jù)或代碼的選項(xiàng)。
但是,我發(fā)現(xiàn)編譯器會(huì)自動(dòng)調(diào)整A,B,C,D數(shù)組的存儲(chǔ)順序。
請(qǐng)問,如何設(shè)置才能讓編譯器,按照文件中的順序生成目標(biāo)數(shù)據(jù)或代碼?
使用結(jié)構(gòu)體或者 利用gcc 的擴(kuò)展功能__attribute__ 強(qiáng)制指定指定地址
您好,可以參照下圖使用,數(shù)組順序按照ld文件中先后順序指定。
附上示例代碼。
我的意思是把 Info_Page.c中用的數(shù)組內(nèi)容(無論程序中是否用到),按照“文件中出現(xiàn)的順序”定位到地址0x8000。
請(qǐng)教如何設(shè)置ld文件。