У меня есть исходный файл, который широко использует шаблоны.
У меня также есть в этом файле явные экземпляры различных шаблонов ... их много.
Этот файл скомпилирован как часть статической библиотеки. Я собираю это
библиотека на нескольких платформах \ для нескольких архитектур: Win x86,
Linux x86 и Linux ARM. Для сборок Linux я использую разные компиляторы
поэтому результирующие файлы (я говорю здесь в контексте файла ELF
само по себе) разные: для GCC результирующий объектный файл имеет размер 8,4 МБ
и имеет чуть более 40000 секций ELF; для компилятора ARM (armcc)
результирующий файл имеет размер 12,7 МБ и более 90000 ELF
секции (!); в обоих случаях у меня есть отладочная информация.
Что происходит, когда во время соединения компоновщик ARM задыхается и умирает, пытаясь
связать этот огромный объектный файл в статической библиотеке. После некоторого расследования кажется
что он не может обрабатывать объектные файлы с более чем 65536 ELF-разделами в нем (у меня все еще есть
чтобы получить подтверждение от поставщика компилятора, хотя ... или я делаю
что-то совершенно и совершенно не так). Решение, которое я нашел для этого, разделяет
файл в несколько меньших файлов (это структура и то, что внутри было разрешено для этого).
Вопрос (ы): есть ли другое альтернативное решение? Будет ли это
возможно для компилятора генерировать дополнительный код в объектном файле (в контексте шаблонов)
до фазы связывания?