Гамбо парсер в 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).