Обертывание C -либераC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Обертывание C -либера

Сообщение Anonymous »

У меня есть библиотека C, которую мне нужно использовать в коде C ++, поэтому мне нужно обернуть всю LIB с помощью блока «c» . Проблема в том, что библиотека, по -видимому, включает в себя скомпилированный код C ++, поэтому обертка всей LIB также обернет этот заголовок C ++. < /P>



Inside lib.h Я включаю только все внутренние заголовки, которые я хочу разоблачить, что -то вроде этого: < /p>

Код: Выделить всё

#ifndef LIB_H
#define LIB_H

#include "lib_foo.h"
#include "lib_bar.h"
#include "lib_baz.h"

#endif
< /code>

Таким образом, клиенту нужно будет только включить lib.h < /code> для использования lib. < /p>

В моей первой попытке я сделал это: < /p>

#ifndef LIB_H
#define LIB_H

extern "C" {
#include "lib_foo.h"
#include "lib_bar.h"
#include "lib_baz.h"
}

#endif
< /code>

Но затем я получаю ошибку поиска символа, когда я выполняю какую -либо функцию внутри уже_compiled_c ++. H < /code>. < /p>

 p> Как я могу избежать применения extred "c" < /code> в files_compiled_c ++. H < /code> файл заголовка? < /p>



 edit: < /strong> < /p>

Решено. Это не было проблемой с использованием внешнего "c" 
, это была проблема, связанная с компилированной библиотекой C ++ с GYP правильно: использование общей библиотеки в GYP в узле-sqlite3

Подробнее здесь: https://stackoverflow.com/questions/236 ... -c-include
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»