我试图删除使用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