c++ - 尽管项目很小,但 g++ 仍会生成大型二进制文件

标签 c++ g++ shared-libraries eclipse-cdt

这可能是一个常见的问题。事实上,我想我几年前就问过了……但我不记得答案了。

问题是:我有一个由 6 个源文件组成的项目。所有这些都不超过 200 行代码。它使用许多 STL 容器、stdlib.h 和 iostream。现在可执行文件的大小约为 800kb。我想我不应该静态链接库。如何使用 GCC 做到这一点?在 Eclipse CDT 中呢?

编辑: 当我的回答偏离我想要的内容时,我认为需要澄清一下。我想知道的是这么小的程序为什么这么大,和静态库、共享库有什么关系,有什么区别。如果故事太长而无法讲述,请随时指点文档。谢谢

最佳答案

如果你给 g++ 动态库名称,并且不传递 -static 标志,它应该动态链接。

要减小大小,您当然可以剥离 二进制文件,并将-Os(针对大小进行优化)优化标志传递给g++ .

关于c++ - 尽管项目很小,但 g++ 仍会生成大型二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1819564/

相关文章:

c++ - 具有虚拟继承的类的大小

c++ - 让 RInside 示例使用额外的链接器选项 -framework

c++ - -g++ 中的 Wsign-compare 警告

c++ - 对共享库函数的 undefined reference

c++ - 未定义对 Qt 中静态声明变量的引用?

c++ - 在 vector 中复制类时调用构造函数

c++ - 使用 malloc() 分配的指针实例化一个类

c++ - Curiously Recurring Template Pattern (CRTP)、AutoLists 和 C++

c++ - 为什么 CMake 被设计为在安装时删除运行时路径

c - 链接共享对象时对 `test' 的 undefined reference