У меня есть библиотека .so, которую я хочу связать с кодом C ++. В файле .so есть функция с именем add
, которая учитывает интерфейс C (объявлен как extern «C»). У меня нет файла .h, поэтому я сделал что-то вроде этого, но на Android:
#include <iostream>
extern "C" int add(int, int);
//int add(int, int);
int main()
{
std::cout << add(1,1) << std::endl;
}
Если я использую extern "C" int add(int, int);
, я получаю ошибку компиляции о том, что функция add
не объявляется. Если я использую int add(int, int);
, он компилируется, но связывание не удается (но это может быть по другим причинам).
Как правильно определить функцию extern C из .so?