使用GCC构建最小的独立可执行文件

时间:2012-08-15 19:51:17

标签: gcc compilation

我有很少的程序(用C编写)实现了一些算法,我用它来测量计算时间。整个数据直接在代码中作为静态库实现,这些程序没有输入和输出。还没有C库调用(没有printfs等)。

我想构建完全独立且最小的可执行文件。我不想将我的程序与libgcc链接(目标CPU有协处理器,因此我不需要模拟浮点运算),C库或任何其他。实际上我想让我的程序尽可能独立。在Linux上ELF程序必须只与crt0.o链接才能正常运行,对吗?

我主要是因为我很好奇;)

1 个答案:

答案 0 :(得分:3)

gcc -nostdlib建立关联,然后使用objdump -hstrip --remove-section=...通过删除评论部分和异常处理框架信息部分之类的愚蠢内容来真正使其变小。继续删除部分,直到它停止工作。

然后使用-Os进行编译