Каков механизм Compiler Options & Other для уменьшения размера статической библиотеки? - PullRequest
0 голосов
/ 16 ноября 2010

Что такое «Параметры компилятора и другие» для уменьшения размера статической библиотеки?

ОС: VxWorks Компилятор: GCC Язык: C

Ответы [ 4 ]

3 голосов
/ 16 ноября 2010

Используйте -Os для оптимизации для меньшего размера кода и пропустите -g и другие параметры отладки.

2 голосов
/ 16 ноября 2010

Если вы действительно обеспокоены размером исполняемого файла после связывания статической библиотеки, то вам также следует поместить только одну функцию в каждый исходный файл (и, следовательно, в объектный файл). Во время компоновки компоновщики обычно извлекают целые объектные файлы из статической библиотеки.

1 голос
/ 16 ноября 2010

Вы уверены, что вам нужно включить статические библиотеки в ваше окончательное изображение?Статические библиотеки связаны с исполняемым файлом во время компоновки, поэтому, если вы не собираетесь создавать систему с работающим компилятором / компоновщиком, вы можете безопасно удалить статические библиотеки.Динамические библиотеки - другая история ...

Если вам нужно уменьшить размер статических библиотек, используйте «strip» с правильными параметрами."strip mylib.a" без каких-либо опций должна работать правильно, но вы можете получить меньшую библиотеку с несколькими дополнительными опциями.Будьте осторожны, чтобы не удалить таблицу символов из библиотеки, так как компоновщик нуждается в этой таблице, чтобы совершить «магию».

0 голосов
/ 03 ноября 2011

Вы можете использовать --ffunction-sections и --fdata-sections, что говорит gcc поместить каждую функцию и глобальную переменную данных в отдельный раздел внутри объекта. Вам не нужно изменять все ваши исходные файлы.

...