The accepted answer is very good, but only in order to supplement your further questions (as well as a link for everyone here).
What is equivalent to gcc -s in terms of a strip with some of its parameters?
They both do the same, completely deleting the character table. However, as @JimLewis explained, the strip allows for finer control. For example, in a moveable object strip --strip-unneeded will not remove its global characters. However, strip or strip --strip-all will strip --strip-all full character table.
Which one do you use to reduce the size of the executable file and speed up its launch
A character table is an unallocated section of a binary file. This means that it never loads into RAM. It stores information that can be useful for debugging fiorites, for example, for printing a still image in case of failure. The case where it would be advisable to delete the symbol table will be a scenario where you have serious storage capacity limitations (in this regard, it is useful to use gcc -Os -s or make CXXFLAGS="-Os -s" ... since this will lead to slower binary algorithm, which is also devoid of further downsizing). I do not think that deleting the symbol table will increase the speed for the reasons commented out.
Finally, I recommend this link about deleting shared objects: http://www.technovelty.org/linux/stripping-shared-libraries.html
Diego Pino Oct 24 '13 at 11:11 2013-10-24 11:11
source share