我試圖刪除使用ARMCC編譯器的Keil ARM工具未使用的代碼。 我以前使用的基於ARM GCC編譯,我可以很容易地刪除未使用的代碼:ARMCC刪除未使用的變量
-fdata-sections -ffunction-sections
對於ARMCC我發現了相似的標誌
--split_sections
,但它僅適用於功能而不是與變量。
有什麼辦法可以刪除未使用的變量與ARMCC?
編輯:
例如給下面的庫代碼:
lib.c :
static int veryBigArray[1000000UL];
int func1() { ... }
int func2() { memset(veryBigArray, 0, sizeof(veryBigArray); }
和我的項目代碼:
project.c:
int main(void)
{
func1();
}
我想用刪除FUNC2()和veryBigArray編譯器/鏈接器優化。
我認爲你需要更具體。它看起來像您的代碼在多種情況下使用,並且當您鏈接它時,您希望刪除未使用的代碼。也就是說,有一個編譯器或工具警告你某些東西沒有被靜態分析使用,這不是你想要的嗎?所以有條件的編譯或刪除變量不是正確的方法嗎? – 2013-02-12 22:56:37
我有一個通用的庫代碼在多個項目之間共享。該庫提供了多種接口功能。這些函數也使用內部靜態變量。我的項目使用少量的接口函數,我想刪除所有未使用的函數,包括未使用的靜態變量。使用--split_sections我可以刪除函數,但不是變量。到目前爲止,我們公司使用基於GCC的編譯器,我們不需要爲此目的包括條件編譯。 GCC可以刪除未使用的代碼和數據。我正在尋求類似ARMCC的功能 – 2013-02-13 05:55:55
這沒有幫助? http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0474i/Cchhhghb.html – auselen 2013-02-13 07:55:56