Как уменьшить размер исполняемого файла, создаваемого компилятором MinGW g++?
У меня есть тривиальная программа" Hello world " C++, которая компилируется в исполняемый файл 500kB компилятором MinGW g++ под Win XP. Некоторые говорят, что это вызвано iostream библиотека и статическая ссылка libstdc++.dll файлы.
С помощью - s опция компилятора помогла немного (уменьшив размер 50%), но я бы удовлетворился только исполняемым файлом
можно ли скопировать libstdc++.dll с исполняемым файлом с использованием динамической компоновки? Если да, то как этого добиться?
решила: я использовал MinGW 3.4. Теперь я обновился до последнего MinGW 4.6, и размер был уменьшен на 90% до 50kB, с - s вариант даже к 9кб, которое полно достаточно. В любом случае - спасибо всем за помощь. Вот вам мои результаты
C++ Привет, Мир
4 ответов
флаги:
-
-s
Как вы делали, чтобы раздеть символы -
-lstdc++_s
чтобы указать динамически связывание сlibstdc++.dll
-
-Os
оптимизировать двоичный размер.
по умолчанию статические ссылки mingw на libstdc++.a
на Windows.
отметим, что lstdc++_s
флаг только в MinGW с GCC > 4.4, я считаю.
вы должны использовать-O для оптимизации. Добавьте" - O{level} " в ваш компилятор args, и он оптимизируется для скорости или размера. Проверьте документы для компилятора.
вы также можете включить отладочные символы. Раздевание их также сделает его меньше.