LIB выпуска огромен сравненный с отладкой

У меня есть статический проект библиотеки со стандартными опциями отладки/сборки конечных версий. Я был заинтригован определить это, в то время как отладка .lib составляет довольно большие 22 МБ, выпуск, каждый - огромные 100 МБ. И это не крупная кодовая база также, приблизительно 75 классов и ни один из них очень гигантский.

Мои вопросы состоят в том, нормально ли это, и должен ли я заботиться?

6
задан Mr. Boy 12 January 2010 в 21:17
поделиться

7 ответов

Я бы проверил, если вы ссылаетесь ли вы библиотеки в режиме выпуска и динамически связываете их в режиме отладки. Вы можете быть статически связаны с использованием выполнения C ++, например.

4
ответ дан 10 December 2019 в 00:38
поделиться

Нет, это ненормально. Должно быть наоборот. Да, тебе должно быть не все равно.

Я бы начал с просмотра размеров еще раз, чтобы убедиться, что я каким-то образом не транспонировал размеры выпуска и отладки.

Затем посмотрите библиотеки, которые вы подключаете для выпуска и отладки. Вы случайно связали отладочную библиотеку для отправки и отправили библиотеку для отладки?

Внимательно изучите свои настройки для выпуска и отладки. Происходит что-то очень подозрительное.

1
ответ дан 10 December 2019 в 00:38
поделиться
-

Возможно ли, что массивное количество этого кода встроена, а версия отладки не «встроила»?

1
ответ дан 10 December 2019 в 00:38
поделиться

Идеально освобождает Lib должен быть меньше, чем отладочный.

Я думаю, вы можете быть статически связаны с другими libs, такие как MFC, ATL и т. Д. ...

Проверьте настройку выпуска и отладки.

Используйте #PRAGMA один раз , чтобы избежать включения нескольких временных файлов.

1
ответ дан 10 December 2019 в 00:38
поделиться

Существует одна вещь, которая может объяснить такой размер: отладки символов, встроенные в сборку выпуска (в отличие от создания в формате PDB). Вы уверены, что у вас нет сгенерированных символов отладки для вашего выпуска? (Какой визуальный C ++ вы используете?)

0
ответ дан 10 December 2019 в 00:38
поделиться

Обычно я ожидаю обратного...

Возможно ли, что внутри блоков, включенных в препроцессор, есть большие участки кода, которые попадают только в сборки релизов?

Шаблонный код особенно подозрителен в этом случае.

Обновление

Я думаю, что проблема, скорее всего, вызвана линковкой на статические libs в режиме релиза, и на разделяемые libs в режиме отладки....

+1 karoberts

0
ответ дан 10 December 2019 в 00:38
поделиться

У меня была такая же проблема. Исправление очень просто. Project Property / конфигурация Свойства / Общая / целая оптимизация программы Использование Нет всей оптимизации программы вместо , используйте генерацию кода времени канала . Размер моей статической библиотеки снизился с 5 МБ до 1,3 МБ

3
ответ дан 10 December 2019 в 00:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: