将c项目编译为最小的大小

时间:2012-06-17 07:59:24

标签: c++ eclipse gcc opencv

我在嵌入式处理器(NIOS 2)上使用opencv库编写算法,以便在nios上移植要编译的库:

1 - 我删除了处理IO操作的highgui和所有函数。

2 - 我拿了剩下的文件(很多)并将它们和我的main.cpp一起添加到一个新的eclipse项目中。

3 - 我可以编译代码并运行正常,但主要问题是将下载到嵌入式处理器(.elf文件)的输出文件太大~20 MB没有优化和~6 MBs优化级别3。

是否有任何提示只编译此大型项目中所需的文件,并跳过我的代码中未调用的其他文件?

1 个答案:

答案 0 :(得分:2)

假设您使用main()构建正常的可执行二进制文件,链接器已经删除了根本无法调用的内容。

如果您知道某些文件根本未使用,请将其从项目中删除。产生的任何错误都应该告诉您实际上可以被调用的方式,并且您需要删除可能导致那些的代码路径。

您可以使用-Os来优化大小而不是-O3,但我不知道NIOS平台有多大差异,其中(除非事情发生了根本改变)大小优化永远是必不可少的。