Гамбо парсер в C++ Builder XE6

Я пытаюсь использовать анализатор HTML - Gumbo (написанный на C) в моем проекте C++ Builder XE6.

Когда я компилирую, я получаю много ошибок (здесь не разрешено объявление E2140 и т. Д.), Которые, похоже, исходят из файла char_ref.rl,

Я много пытался избежать этих ошибок, но мне это не удалось.

Кто-нибудь когда-либо использовал Gumbo в проекте C++ Builder или, по крайней мере, в проекте C++?

Спасибо

1 ответ

Решение

Замечания: extern "C" не означает "скомпилировать этот код как C". Это означает, что код C++ внутри блока должен быть скомпилирован так, чтобы любые внешние имена и т. Д. Публиковались способом, совместимым с C ABI. И такой блок не должен содержать никаких определений функций. Вы можете использовать extern "C" неправильно в вашем коде, но это трудно сказать, не видя ваш код.

В любом случае, часть компилятора C bcc32.exe, по-видимому, не допускает смешанных операторов и объявлений, даже если вы установите флаг -An что должно означать "Использовать ключевые слова и расширения C99".

Вам придется либо выполнить 64-битную сборку, либо внести целый ряд изменений в этот источник C для совместимости с динозавром, который называется bcc32. Или вы можете собрать Gumbo как DLL с современным компилятором (если он поддерживает эту опцию, IDK).

Другие вопросы по тегам