предыдущее объявление ссылки на пространство имен {} - PullRequest
0 голосов
/ 03 сентября 2018

Я получаю ошибку компиляции при компиляции моего кода с libxml2.

Файл Reference.h уже существует в моем коде и используется многими другими файлами:

Reference.h
namespace reference // BEGIN OF namespace reference
{

}

Но я получаю сообщение об ошибке при компиляции моего кода с libxml2:

libxml2/libxml/SAX.h:116: error: 'void reference(void*, const xmlChar*)' redeclared as different kind of symbol

libxml2/libxml/SAX.h
XMLPUBFUN void XMLCALL reference (void *ctx,
       const xmlChar *name);

Есть ли способ устранить эту ошибку без изменения моего файла Reference.h?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 03 сентября 2018

По сути, отключите SAX.h. Это устаревший интерфейс, который не мешает создавать пространство имен или использовать какой-либо стандартный префикс для своих символов. Вместо этого используйте SAX2.h, который (в дополнение к другим улучшениям) префиксирует все с xmlSAX2.

Чтобы исключить устаревшие файлы из вашего libxml2, при запуске configure не пропустите параметр with_legacy.

...