Влияние локали на размер двоичного файла C ++ ESP8266 Arduino - PullRequest
0 голосов
/ 12 апреля 2020

Я обсуждаю github с экспертами по ядру Arduino ESP8266 относительно того, почему один и тот же источник генерирует значительно больший двоичный файл на чужой машине. Для записи, все - это та же панель ОС (Mine Win10, другой Win10 pro). Я потратил целый день на проверку / подтверждение версии IDE, версии всех установленных библиотек, параметры компилятора, параметры сборки IDE, бла-бла-бла идентичны - и они, однако, мой двоичный файл составляет 430 КБ , его составляет 550 тыс.

Пожалуйста, давайте не будем переходить к "Вы проверили Х", потому что ответом будет "да". Следующий вопрос основан на том факте, что все входные данные для процесса одинаковы, поэтому:

Что это может быть в его системе (вне среда / процесс сборки), которая вызывает увеличение на 120 КБ?

Я объявлял два ELF, и он показывает c++locale.cc включенным, когда у меня его нет. Он также включает в себя сотни обращений к функциям широких символов, о которых я никогда не слышал, никогда не использовал и, конечно, не является частью моего кода: wide chars

Так как же его код имеет 120 килобайт этого материала «впрыснуто» в его сборку?

Теперь вопрос за 64 000 долларов: он иорданец. Я подозреваю, что у него установлена ​​Win10 на арабском c, и поэтому широкие символы являются значениями по умолчанию для системы, и каким-то образом компилятор обнаруживает это и вытягивает все лишние вещи ... если это не так, то, что, черт возьми, делает это, учитывая, что все но все еще то же самое?

...