Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
258 views
in Technique[技术] by (71.8m points)

linux - How to strip executables thoroughly

I'd like to strip as much as I can - on Linux: an ELF. I only want in there the stuff I need to run it.

I tried using strip:

strip --strip-all elf

But it doesn't seem to do a good job: nm still displays lots of stuff, and the binary is still big.

What should I do?

question from:https://stackoverflow.com/questions/4179010/how-to-strip-executables-thoroughly

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If everything else fails, you could read the documentation, starting with man strip.

Seriously, maybe your application has a lot of symbols and code. At one extreme, the biggest size reduction would be rm elf but then your program won't run anymore. It all depends on your program and what you coded into it.

As a concrete example, I recently worked with a large C++ library where strip without further arguments reduced the size from 400+mb to about 28 mb. But then you could not link anymore against it (in the context of other shared libraries), rendering it somewhat useless.

But when using strip --strip-unneeded, it changed the size from 400+ mb to 55 mb which is still considerable, yet allowed the library to be accessed from other shared libraries.

In short, I'd trust strip. Maybe your application cannot be reduced any further without code changes.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...