我的计算机上有不同的C++编译器,每个编译器都有其自己的libstdc++。so,并且它们的大小也不同。
-rwxr-xr-x. 1 root root 967K Mar 22 2017 libstdc++.so.6.0.13
-rwxr-xr-x. 1 root root 6.5M Aug 1 2017 libstdc++.so.6.0.20
-rwxr-xr-x. 1 root root 11M Aug 1 2017 libstdc++.so.6.0.21
-rwxr-xr-x. 1 root root 12M Jan 30 16:58 libstdc++.so.6.0.24
我想知道为什么libstdc++。so.6.0.13比别人小得多,并且有什么方法可以减小别人的身材。
如果有人可以帮助我,我会很高兴。
最佳答案
libstdc++的版本控制方案具有误导性,当考虑相应的GCC版本时,这些版本之间的差异实际上是巨大的:
在GCC 4.4和4.9之间有C++ 14的实现,并且在C++ 17上的主要工作以及此后的各种实验性建议。
从libstdc++的FAQ:
简而言之-关于大小,无法做太多事情。如果您真的有兴趣,可以使用
readelf -a libname.so
查看里面的内容您总是可以降级到较旧的GCC版本,该版本将附带较小的libstdc++。
话虽这么说,在Ubuntu上
libstdc++.so.6.0.24
的大小是1.54MB,所以实际上并没有增长那么多。您的特定发行版可能有问题,或者您抢了一个调试版本。您可以尝试使用strip libstdc++.so.6.0.24
剥离调试符号(strip
实用程序是binutils
的一部分)。关于c++ - 如何减少C++标准库libstdc++。so的文件大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50581090/