суббота, 26 сентября 2009 г.

[comp.prog.bugs] SQLite 3.6.18 и VC++ 7.1: слишком много строк

Сейчас выкачал 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++ переваривают такое количество строк? Или у них те же проблемы ;)

4 комментария:

  1. Сгенерировал файлик на 120000 строк VC 2008 с большим трудом сожрал :)

    ОтветитьУдалить
  2. А что значит "с большим трудом"?

    В VC++ 7.1 происходит следующее -- в обычном режиме он выдает предупреждение, но компиляцию продолжает. Наверное, в этом случае просто не сохраняются номера строк в отладочной информации.

    Однако, если выставить ключ -WX (treat warnings as errors), то облом-с: не компилирует.

    ОтветитьУдалить
  3. Предупреждений не выдает, компилирует все без вопросов, с трудом потому-что отожрало почти два гига памяти и минут 10 гоняло P4 двухядерник.

    ОтветитьУдалить