У меня есть статический проект библиотеки со стандартными опциями отладки/сборки конечных версий. Я был заинтригован определить это, в то время как отладка .lib составляет довольно большие 22 МБ, выпуск, каждый - огромные 100 МБ. И это не крупная кодовая база также, приблизительно 75 классов и ни один из них очень гигантский.
Мои вопросы состоят в том, нормально ли это, и должен ли я заботиться?
Я бы проверил, если вы ссылаетесь ли вы библиотеки в режиме выпуска и динамически связываете их в режиме отладки. Вы можете быть статически связаны с использованием выполнения C ++, например.
Нет, это ненормально. Должно быть наоборот. Да, тебе должно быть не все равно.
Я бы начал с просмотра размеров еще раз, чтобы убедиться, что я каким-то образом не транспонировал размеры выпуска и отладки.
Затем посмотрите библиотеки, которые вы подключаете для выпуска и отладки. Вы случайно связали отладочную библиотеку для отправки и отправили библиотеку для отладки?
Внимательно изучите свои настройки для выпуска и отладки. Происходит что-то очень подозрительное.
Возможно ли, что массивное количество этого кода встроена, а версия отладки не «встроила»?
Идеально освобождает Lib должен быть меньше, чем отладочный.
Я думаю, вы можете быть статически связаны с другими libs, такие как MFC, ATL и т. Д. ...
Проверьте настройку выпуска и отладки.
Используйте #PRAGMA один раз
, чтобы избежать включения нескольких временных файлов.
Существует одна вещь, которая может объяснить такой размер: отладки символов, встроенные в сборку выпуска (в отличие от создания в формате PDB). Вы уверены, что у вас нет сгенерированных символов отладки для вашего выпуска? (Какой визуальный C ++ вы используете?)
Обычно я ожидаю обратного...
Возможно ли, что внутри блоков, включенных в препроцессор, есть большие участки кода, которые попадают только в сборки релизов?
Шаблонный код особенно подозрителен в этом случае.
Обновление
Я думаю, что проблема, скорее всего, вызвана линковкой на статические libs в режиме релиза, и на разделяемые libs в режиме отладки....
+1 karoberts
У меня была такая же проблема. Исправление очень просто. Project Property / конфигурация Свойства / Общая / целая оптимизация программы Использование Нет всей оптимизации программы вместо , используйте генерацию кода времени канала . Размер моей статической библиотеки снизился с 5 МБ до 1,3 МБ