Я использую библиотеку C (libgretl) из C ++, и некоторые ее функции конфликтуют с моим кодом, поэтому я хотел обернуть ее в пространство имен, например:
namespace libgretl {
extern "C" {
#include <gretl/libgretl.h>
}}
Однако этоне компилируется, я получаю "неопределенные" ошибки из файлов gcc (используя mingw32 с gcc 4.5.2 в Windows).Первые ошибки происходят из следующего блока кода файла c ++ / cstddef:
_GLIBCXX_BEGIN_NAMESPACE(std)
using ::ptrdiff_t;
using ::size_t;
_GLIBCXX_END_NAMESPACE
, где макросы расширяются соответственно до namespace std {
и }
.После этого возникает больше ошибок.
Пропуск директивы extern "C"
не помогает.Использование анонимного пространства имен уменьшает количество ошибок, но все равно не компилируется.
Поэтому мой вопрос заключается в том, есть ли способ включить такую библиотеку C и поместить ее функции в пространство имен, не изменяяgcc или исходные файлы библиотеки?
Спасибо.
Михал