用GCC构建最小化的独立可执行文件
问题描述:
我有几个程序(用C语言编写)实现了一些算法,我用它来度量计算时间。整个数据在代码中直接作为静态库实现,没有这些程序的输入和输出。也没有C库调用(没有printfs等)。用GCC构建最小化的独立可执行文件
我想构建完全独立和最小的可执行文件。我不想将我的程序与libgcc(目标CPU有协处理器,所以我不需要模拟浮点运算),C库或任何其他程序链接。其实我想让我的节目尽可能独立。在Linux上,ELF程序只能与crt0.o连接才能正常运行,对吧?
我主要是问,因为我很好奇;)
答
链接与gcc -nostdlib
,然后用objdump -h
和strip --remove-section=...
,以真正使小的摆脱无聊的东西,如注释部分和异常处理帧信息部分。继续删除部分,直到它停止工作。
并编译-Os
当然是