GCC -- reducing compiled code size

I

Ignoramus3627

We have a library that has 179385 lines of code.

With GCC, no debug information requested (no -g option) it creates a
31 meg long .a library file.

I think that it is excessive. Any idea what I can do to reduce the
size?

i
 
V

Victor Bazarov

Ignoramus3627 said:
We have a library that has 179385 lines of code.

With GCC, no debug information requested (no -g option) it creates a
31 meg long .a library file.

I think that it is excessive. Any idea what I can do to reduce the
size?

C++ _language_ imposes no requirements on the size of the produced
object code (or machine code). Please ask in the newsgroup dedicated
to your compiler (gnu.g++.help comes to mind).

V
 
R

Roland Pibinger

We have a library that has 179385 lines of code.
With GCC, no debug information requested (no -g option) it creates a
31 meg long .a library file.
I think that it is excessive. Any idea what I can do to reduce the
size?

You should consult the compiler documentation (IIRC, you need at least
-DNDEBUG -s and some optimization level).
 
I

Ignoramus3627

You should consult the compiler documentation (IIRC, you need at least
-DNDEBUG -s and some optimization level).

I tried -DNDEBUG -Os -fvisibility-inlines-hidden, it reduced size by
only about 12%. Thanks, that was helpful, though I was hoping for more.

i
 
R

Roland Pibinger

I tried -DNDEBUG -Os -fvisibility-inlines-hidden, it reduced size by
only about 12%. Thanks, that was helpful, though I was hoping for more.

-s means "Strip all symbols". It's a linker option and should
considerably reduce your code size (-Os is a compiler option that
might also help but it's not the same as -s). Linker options are
displayed with ld --help.
 
J

James Kanze

C++ _language_ imposes no requirements on the size of the produced
object code (or machine code). Please ask in the newsgroup dedicated
to your compiler (gnu.g++.help comes to mind).

Even then. The whole question is misformed: since when is there
any direct relationship between lines of code and size of a
library. With a little bit of clever use of templates, I can
get a library that big with only a thousand lines of code,
probably even less. On the other hand, it's pretty easy to
write code where the library size will be smaller than the
original C++ source code. Without seeing the exact code, it's
impossible to say whether the size is excessive or not. (Even
from a quality of implementation point of view.)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top