相关疑难解决方法(0)

如何减小生成的二进制文件的大小?

我知道有一个选项"-Os"来"优化尺寸",但它几乎没有影响,甚至在某些场合增加尺寸:(

strip(或"-s"选项)删除调试符号表,工作正常; 但它只能减少尺寸的小比例.

还有其他方法可以继续吗?

linux gcc strip compiler-optimization

14
推荐指数
5
解决办法
1万
查看次数

g ++编译器标志,以最小化二进制大小

我有一个Arduino Uno R3.我正在使用C++为每个传感器制作逻辑对象.Arduino的板载内存非常有限,只有32KB*,平均来说,我的编译对象大约是6KB*.

我已经在使用所需的最小数据类型,以尽量减少我的内存占用.是否有编译器标志来最小化二进制文件的大小,或者我是否需要使用更短的变量和函数名称,更少的函数等来最小化我的代码库?

此外,还应该理解用于最小化二进制大小的任何其他提示或建议.

*它可能无法用KB测量(因为我没有它坐在我面前),但是1个对象大约是我总内存大小的1/5,这引起了我的关注.

c++ g++ arduino compiler-optimization

10
推荐指数
2
解决办法
1万
查看次数

减少GCC目标EXE代码大小?

当我编写一个无操作程序时:

int main(void)
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

与各种编译器:

  • GCC(与LLVM类似的结果):提供10-KiB可执行文件(编译-s)

    • 部分:.CRT,.bss,.data,.idata,.rdata,.text,.tls

    • 取决于msvcrt.dllkernel32.dll

  • MSVC 2010:获得5.5 KiB可执行文件(编译/MD /Ox)

    • 部分:.data,.rdata,.reloc,.text

    • 取决于msvcr100.dllkernel32.dll

    • 本来通过合并进一步减少.rdata.text

  • Windows驱动程序工具包7.1:提供6.5 KiB可执行文件(编译/MD /Ox,链接msvcrt_winxp.obj以允许它在XP上运行)

    • 部分:.data,.rdata,.text

    • 取决于msvcrt.dllkernel32.dll

    • 本来通过合并进一步减少.rdata.text

  • Windows 2003驱动程序开发工具包:提供3.5 KiB可执行文件

    • 部分:.data,.rdata, …

size executable gcc llvm

5
推荐指数
1
解决办法
2604
查看次数

标签 统计

compiler-optimization ×2

gcc ×2

arduino ×1

c++ ×1

executable ×1

g++ ×1

linux ×1

llvm ×1

size ×1

strip ×1