C库条带符号增加了代码大小

时间:2018-02-08 10:45:01

标签: c strip

我将一些目标代码( .o)合并到C中的库( .a)。我想将可见的外部符号减少到将在二进制中使用的符号(符号中的符号)不使用,不可见)。

我使用了以下条带方法:

objcopy --strip-all\
--keep-symbol visible_Function1\
--keep-symbol visible_Function2\
objectCode.o libraryCode.a

地图文件按预期显示(仅查看指定的符号)。但与非剥离方法相比,我获得了* .a文件的增加的代码大小( TEXT ),构建了相同的二进制文件。

在使用strip时,知道为什么代码大小会增加吗?

1 个答案:

答案 0 :(得分:-1)

您需要在创建libraty时启用优化设置-O1或-O2。

注意:在编译包含此库的应用程序时应使用此选项,如果您在代码中的某个位置使用它,则优化不会删除函数。你不希望任何其他人使用这些功能然后保持在本地。