Сейчас выкачал amalgamation-версию SQLite 3.6.18 и попытался скомпилировать ее Visual C++ 7.1. Получил замечательный результат:
sqlite3\sqlite3.c(65536) : warning C4049: compiler limit : terminating line number emission
Compiler limit for line number is 65535
Всего в sqlite3.c около ста девяти тысяч строк. Слишком много :)
Ситуация элементарно разрешилась посредством утилиты split и превращения sqlite3.c всего лишь в набор #include-ов. Но интересно, а новые версии Visual C++ переваривают такое количество строк? Или у них те же проблемы ;)
Сгенерировал файлик на 120000 строк VC 2008 с большим трудом сожрал :)
ОтветитьУдалитьА что значит "с большим трудом"?
ОтветитьУдалитьВ VC++ 7.1 происходит следующее -- в обычном режиме он выдает предупреждение, но компиляцию продолжает. Наверное, в этом случае просто не сохраняются номера строк в отладочной информации.
Однако, если выставить ключ -WX (treat warnings as errors), то облом-с: не компилирует.
Предупреждений не выдает, компилирует все без вопросов, с трудом потому-что отожрало почти два гига памяти и минут 10 гоняло P4 двухядерник.
ОтветитьУдалитьДа, впечатляет.
ОтветитьУдалить