You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在GNU/Linux下使用GCC时,动态库(*.so)必然生成更小的二进制文件吗?

GCC静态库与动态库实验的体积疑惑

我在GNU/Linux系统上使用GCC开展静态库与动态库的实验。按认知,静态库会直接嵌入可执行文件,动态库则保持独立并在程序运行时加载,其优势之一是生成的二进制文件体积更小。但实际使用动态库编译时,我并未观察到明显的体积缩减:
文件体积对比图

我原本预期使用动态库编译出的最终二进制文件useString,大小会接近对应的目标文件useStringLib.o,但它的体积几乎与静态库编译出的二进制文件相同。

注:libstringfun.a与libstringfun.so基于相同代码(我编写的一组自定义字符串函数),useString是调用这些库的二进制程序。

构建动态库的命令如下:

gcc -fPIC -c lib_stringfun.c
gcc lib_stringfun.o -shared -o libstringfun.so 

链接动态库与二进制文件的命令为:

gcc -o useString useStringLib.o -L. -lstringfun

内容的提问来源于stack exchange,提问作者svs29122

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 16:50:20