【发布时间】:2013-02-25 05:06:11
【问题描述】:
我有一个 Arduino Uno R3。我正在使用 C++ 为我的每个传感器制作逻辑对象。 Arduino 的板载内存非常有限,只有 32KB*,平均而言,我编译的对象大约 6KB*。
我已经在使用尽可能少的所需数据类型,以尽量减少我的内存占用。是否有编译器标志来最小化二进制文件的大小,还是我需要使用更短的变量和函数名、更少的函数等来最小化我的代码库?
此外,任何其他关于最小化二进制大小的提示或建议的话,我们将不胜感激。
*它可能不是以 KB 为单位衡量的(因为我面前没有它),但 1 个对象大约是我总内存大小的 1/5,这引起了我的关注。
【问题讨论】:
-
gcc -o3 , -o2 O 优化
-
@Grijesh No... -O3 通常会使二进制文件变大。
-
@Zak 优化大小的 gcc 选项是
-Os。您还可以在链接后strip二进制文件的符号。 -
@us2012 真的!我想
3是为了更好的水平它的用途是什么? -
@Grijesh 执行速度和二进制大小不一定相关。循环展开和频繁内联之类的事情可能会使程序更快,但会增加二进制文件的大小......
标签: c++ arduino g++ compiler-optimization