Я тестирую, чтобы убедиться, что мой кросс-компилятор работает. Когда я компилирую мир hello, он, кажется, компилируется отлично, но когда я меняю hello.cpp на ту же самую программу, которая петляет 1000 раз, генерируемый файл эльфа точно такого же размера. Независимо от того, какие изменения я делаю, файл всегда одного размера, и, насколько я могу судить, имеет такое же содержимое. Что может вызвать это?Мой кросс-компилятор всегда компилирует один и тот же файл
ответ
Без дополнительной информации вам будет очень тяжело помочь. Но вот несколько идей:
Как говорит Бобби, вы уверены, что передаете ему правильные файлы?
Вы уверены, что исполняемый файл, который вы используете, является сгенерированным?
Является ли компиляция действительно успешной? Исполняемый файл, который вы запускаете, может быть одним из последних успешных запусков компилятора, а не ваших текущих попыток компиляции.
Как вы предлагаете, вы абсолютно уверены что файлы одинаковые? Разве говорят, что они одинаковы? Возможно, что любые изменения, которые вы делаете, оптимизируются - особенно если вы вносите изменения в код, который даже не вызван.
Действительно, вероятность того, что вы на самом деле не делаете то, что считаете своим делом.
Убедитесь, что ваши команды компиляции - будь то в командной строке или в файле make или что-то еще - верны.
Возможно, вам удастся удалить исполняемый файл, чтобы убедиться, что на самом деле создается новый.
Посмотрите, что делает компилятор, если вы специально пытаетесь скомпилировать мусор. Он не должен компилироваться. Если да, то вы не компилируете то, что, по вашему мнению, компилируете.
Я бежал diff и, по-видимому, «насколько я могу судить» не достаточно далеко. Я думаю, что раздел .text, связанный с фактической программой для каждой компиляции, просто ничтожен по сравнению с другими сегментами файла эльфа. Я скомпилировал hello.cpp, nothello.cpp и junk.cpp. привет и nothello были разными (хотя это не так), а хлам не собирался. –
Что это значит «насколько я могу судить»? Вы можете проверить это с помощью diff
или какой-либо другой утилиты. Если вы используете кросс-компилятор для небольшого устройства, у него может быть причина для выделения вывода в блоках определенного размера или даже для предварительного распределения размера устройства. Можете ли вы проверить с помощью какого-то инструмента, который вы действительно получите точно таким же файлом?
Похоже, что на самом деле я не получаю точно такой же файл.Что касается меня сейчас, так это то, что я предположительно утверждал флаг статических библиотек в gcc, поэтому динамическое связывание не должно происходить. Когда я компилирую мир привет и пустую главную, они «почти» идентичны, хотя отображение приветствия в мире часто требует множества инструкций. –
- 1. coreplot - всегда один и тот же сюжет
- 2. Почему clang ++ не компилирует тот же файл, что и g ++?
- 3. темы, изменяющие один и тот же файл
- 4. HashMap может хранить всегда один и тот же порядок?
- 5. mt_rand() дает мне всегда один и тот же номер
- 6. EntityManager.getReference всегда возвращает один и тот же экземпляр внутри сеанса?
- 7. Выбранный элемент из comboBox всегда один и тот же
- 8. Random() всегда выбирает один и тот же номер, используя семя
- 9. Всегда компилировать тот же файл с SVN
- 10. Несколько потоков, читающих один и тот же файл, один обработчик
- 11. Я могу загрузить один и тот же файл один раз
- 12. Загрузите один и тот же файл, выполнив его один раз
- 13. C++ ffmpeg: всегда один и тот же кадр?
- 14. Имеет ли DataReader.NextResult результат всегда один и тот же порядок
- 15. RIP-маршрутизация: всегда один и тот же сетевой адрес
- 16. Выбирает ли * всегда возвращать один и тот же порядок столбцов?
- 17. Результат моей инструкции if всегда один и тот же
- 18. Нажмите, чтобы NSCollectionView всегда возвращал один и тот же объект
- 19. Оператор Switch всегда выбирает один и тот же случай
- 20. Random всегда создает один и тот же номер
- 21. MakeFile компилирует только один файл
- 22. Показать один и тот же файл README.MD в каждой папке?
- 23. Отобразить один и тот же файл на разделительном экране Emacs
- 24. Включает и расширяет один и тот же файл?
- 25. читать и писать один и тот же текстовый файл
- 26. Один и тот же файл загрузки CSS дважды
- 27. Сериализовать несколько записей в один и тот же файл
- 28. Искривляется ли один и тот же файл дважды, если два этапа используют один и тот же RDD?
- 29. Почему мой SQL-запрос всегда возвращает тот же результат?
- 30. SimpleAudioEngine всегда играет тот же эффект?
Ахм ... вы передаете в него нужный файл? – Bobby
Или забыли нажать «сохранить» в своем редакторе? (Я тоже это сделал) – Dan
Минимальный размер для исполняемых файлов ELF (например, для Windows EXE)? «hello world» был бы довольно крошечной программой, если бы она была связана динамически, даже если она зацикливалась 1000 раз. Разумеется, разница была бы очевидна, если бы вы ее запустили. – cHao