Какие опции я должен использовать во время настройки gcc (mingw) для сборки libstdc ++. Dll без отладочной информации? - PullRequest
1 голос
/ 26 января 2011

Я настроил gcc следующим образом:

.. / configure --prefix = / c / mbuild / release - enable-shared = libstdc ++ --enable-threads--enable-specific-version-runtime-libs --enable-languages ​​= c, c ++ --with-dwarf2 --disable-sjlj-исключения --disable-win32-registry --disable-werror --disable-nls --disable-multilib --with-gmp = / c / mbuild / release --with-ppl = / c / mbuild / release --disable-ppl-version-check --with-cloog = / c / mbuild / release --disable-cloog-version-check --with-mpfr = / c / mbuild / release --with-mpc = / c / mbuild / release --enable-libgomp --with-libiconv-prefix = / c / mbuild /выпуск - enable-libstdcxx-debug --enable-cxx-flags = '- s -O2' * - with-boot-ldflags = '- s' * - with-boot-cflags = '- s -O2' --with-boot-cxxflags = '- s -O2 ' &> config.my.log

и сборка:

make -j4 BOOT_CFLAGS = '- s -O2' BOOT_CPPFLAGS = '- s -O2' &> make.my.log

У меня есть всеоптимизирован, кроме libstdc ++ - 6.dll.Его размер составляет 5 МБ!
Итак ... Какие параметры я должен использовать при настройке gcc (mingw) для сборки libstdc ++. Dll без отладочной информации?

ПРИМЕЧАНИЕ:
IНужна отладочная и выпускная версии libstdc ++, поэтому я использую
- enable-libstdcxx-debug - Создание отдельных библиотек отладки в дополнение к тому, что обычно собирается.
Этот флаг создает другую libstdc ++ - 6.dll (где-то в lib dir), которая больше, чем dll в bin-каталоге.

1 Ответ

0 голосов
/ 28 декабря 2014

Вы должны передать параметр strip компоновщику, а не компилятору (-s).И компилятору вы должны передать «-g -O0» для отладочной сборки, что означает включение отладочной информации + генерацию правильного кода без какой-либо оптимизации (последняя - для случая, когда вы читаете код аварийной остановки, это делает вещи более понятными).Поэтому попробуйте добавить в переменную среды LDFLAGS параметр -s для времени сборки.

В качестве альтернативы вы можете использовать программу «strip» (часть MSYS) для удаления всей отладочной информации из исполняемого файла и / или двоичного файла библиотеки.

...