Включение библиотек c ++ в C [duplicate]

0

У меня есть файл заголовка, который включает в себя библиотеки boost, и мне нужно включить этот заголовочный файл в исходный код, написанный на C. Возможно ли это сделать?

Благодарю!

  • 6
    Вам нужно реализовать обертку вокруг вашей библиотеки C ++, чтобы представить C API, который вы можете вызывать из своего кода C.
  • 1
    @zuubs Вы можете быть уверены, что Пол Р. это понял, он не ошибается. Вы должны обернуть это.
Теги:
boost
include

3 ответа

4

Нет, вы обычно не можете включать заголовки C++ в программу C. Вам нужно будет выделить объявления, которые могут использовать программы C в отдельный заголовок, и убедитесь, что они имеют правильную языковую связь в C++:

#ifdef __cplusplus
extern "C" {
#endif

// C-compatible declarations here

#ifdef __cplusplus
}
#endif
  • 0
    Как мне обернуть включения, такие как #include <boost / asio.hpp>?
  • 0
    @zubs: определите неполные типы для классов C ++ (конкретные классы совместимого макета для расширенного использования) и объявите в заголовке сервер пересылки для каждого метода C ++, который необходимо вызвать. Те, которые должны быть реализованы в C ++, конечно.
Показать ещё 2 комментария
0

Вы не можете использовать библиотеку Boost в C

Но вы можете найти много альтернативного, как GLIB и APR.

  • 0
    Я думаю, что ваш URL для повышения не работает. Мне нужно повысить драйвер Cassandra для C ++ github.com/datastax/cpp-driver, и другого способа использовать что-то еще нет.
  • 0
    @zubs Check снова обновил его. Также boost - это коллекция библиотек C++ которые помогут вам избежать написания собственного кода для решения типичных проблем. И вы не можете его изменить.
0

Используйте шаблон адаптера (http://en.wikipedia.org/wiki/Adapter_pattern), этот пост уже обсуждает проблему: использование библиотеки C++ в коде C)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню