Я собираю статическую библиотеку, которая содержит в основном шаблонные классы. Когда это скомпилировано с использованием gcc, результирующий файл .a составляет около 40Мб. Это довольно много, но не совсем неожиданно из-за большого количества шаблонов. Однако, когда я компилирую тот же код с использованием VS2005, результирующий файл .lib приходит с (подождите!) 575Mb ..
Теперь, прежде чем я сгорел, я увидел: Как я могу получить ссылку на мою очень большую программу? , и это полезно для понимания того, что шаблоны потенциально делают библиотеки большими, но я пытаясь понять, почему выходные данные двух компиляторов так различаются по размеру?
VS варианты:
(Debug)
/Od /D "WIN32" /D "_DEBUG" /D "_LIB" /D "_WIN32_WINNT=0x0500" /D "_MBCS" /Gm /EHsc /RTC1 /MDd /W4 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
(Release)
/O2 /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_WIN32_WINNT=0x0500" /D "_MBCS" /FD /EHsc /MD /W4 /nologo /c /Wp64 /Zi /TP /errorReport:prompt
Любые комментарии или указатели очень ценятся ..