构建了一个发布的Linux共享对象,大小为28MB
28681504 Feb 6 19:46 libmtcrypto.so
它是使用此部分命令创建的,其中包括OpenSSL、Boost和许多其他库
/usr/bin/c++ -fPIC -O2 -g -DNDEBUG -shared -Wl,-soname,libmtcrypto.so -o lib/libmtcrypto.so ...
如此大的二进制代码让人不禁要问:"对于一个只导出一个函数的简单共享对象来说,它为什么这么大?"
我怀疑是这些OpenSSL档案(42MB和7MB)
Question个
有没有办法确定哪个代码库使共享对象inflating ?
Update个
根据 comments ,它似乎与添加的所有符号和调试信息有关.我运行了建议的命令:
strip libmtcrypto.so
并将共享对象从28MB减少到5MB!
5634592 Feb 6 20:25 libmtcrypto.so*
构建系统正在添加-g
选项,所以我会联系这些人将其从发布版本中删除.
谢谢!