How can I get my very large program to link?
Our next product has grown too large to link on a machine running 32-bit Windows.  The sum total of all the lib files exceeds 2Gb and can only be linked on a 64-bit Windows machine.  Eventually we will exceed that boundary, since our software tends to grow rather than contract and we are using a 32-bit linker (MS Visual Studio 2005): we expect to hit trouble when our lib size total exceeds 3Gb.

How can I reduce the size of the .lib files, or the .obj files without trimming code?  For example, we use a lot of templates: is there any way of reducing their footprint?  Is there any way of finding out what's causing the bloat from examining the .lib/.obj files?  Can this be automated rather than inspected by eye?  2.5Gb is a lot of text to peer through and compare.
How can I get my very large program to link?
===

Our next product has grown too large to link on a machine running 32-bit Windows.  The sum total of all the lib files exceeds 2Gb and can only be linked on a 64-bit Windows machine.  Eventually we will exceed that boundary, since our software tends to grow rather than contract and we are using a 32-bit linker (MS Visual Studio 2005): we expect to hit trouble when our lib size total exceeds 3Gb.

How can I reduce the size of the .lib files, or the .obj files without trimming code?  For example, we use a lot of templates: is there any way of reducing their footprint?  Is there any way of finding out what's causing the bloat from examining the .lib/.obj files?  Can this be automated rather than inspected by eye?  2.5Gb is a lot of text to peer through and compare.