Штраф флага компилятора MSVS/bigobj
Основной поиск Google bigobj issue показывает, что многие люди испытывают Неустранимая ошибка C1128: "количество разделов превысило ограничение формата файла объекта: скомпилируйте с /bigobj ". Ошибка имеет больше шансов возникнуть, если в большой степени используется библиотека шаблонов С++, например Boost libraries или библиотеки CGAL.
Эта ошибка странная, потому что она дает решение самому себе: установите флаг флаг компилятора /bigobj
!
Итак, вот мой вопрос: почему этот флаг не установлен по умолчанию? Должен быть штраф за использование этого флага, иначе он будет установлен по умолчанию. Это наказание не задокументировано в MSDN. Кто-нибудь знает?
Я задаю вопрос, потому что я задаюсь вопросом, не стоит ли устанавливать конфигурационную систему CGAL по умолчанию.
Ответы
Ответ 1
В документации упоминается важный недостаток /bigobj
:
Линкеры, отправленные до Visual С++ 2005, не могут читать файлы .obj которые были созданы с /bigobj
.
Таким образом, установка этого параметра по умолчанию ограничивает количество линкеров, которые могут потреблять результирующие файлы объектов. Лучше активировать его на основе потребности.