#c #compiler-construction
#c #компилятор-построение
Вопрос:
Я работаю над оптимизацией одного объектного файла C с учетом занимаемой площади. Я использую компилятор arm-elf-gcc, поскольку целевая платформа предназначена для процессора ARM-926EJ.
Я хочу задокументировать текущий размер, а затем сравнить после оптимизации, и мне интересно, почему arm-elf-size возвращает размер, который меньше фактического размера объектного файла?
Это то, что я получаю с arm-elf-size
text data bss dec hex filename
15656 29188 0 44844 af2c hyper.o
И фактический размер файла hyper.o составляет 54 168 байт.
На какой из них мне следует обратить внимание?
С наилучшими пожеланиями
Мистер Гигу
Ответ №1:
Объектный файл имеет заголовки, которые не являются частью размеров сегментов, сообщаемых elf-size.
Комментарии:
1. Так что, правильнее смотреть на размер, возвращаемый arm-elf-size?
2. Это зависит от вашей цели. Чтобы узнать, какое место действительно занято в памяти, да (но это также может зависеть от размещения сегментов в памяти). Обратите внимание также, что при наличии неинициализированных данных вы можете оказаться в обратной ситуации (размер сообщает больше, чем размер файла).