接到一个任务,B库(动态库)依赖A库(静态库),嫌B库大了,想缩减一些。A库是公共库,有不少用不着的代码。想着编一个精简的A库,是不是可以达成目的。突然想起,庞大的A库链接进去后,B库似乎没有增加很多。所以,那些没有用到的A库内容,到底有链接入B库吗?我决定测试一下。
测试方法:生成一个app项目,做各种修改,然后用nm查看生成app的符号表。(mac电脑)。
测试结果:
1.本项目的源码,不管使用没使用,全都会被链接。
2.链接静态库
a .只配置库,不链接。
b.只包含头文件,不使用,不链接。
c.使用了代码,链接。链接时以.cpp为单位。即这个cpp有符号被使用了,那整个cpp的符号都会被链接。
网友评论