Вы должны включать только заголовки (или альтернативно использовать прототипы), чтобы позволить вашим C-файлам компилироваться.
После компиляции у вас все равно будет ошибка с "неопределенной ссылкой на" methodName ".
Это потому, что компиляторы C ++ кодируют пространство имен методов внутри файла cpp.Он не делает этого для методов (или, что важно, для вызовов методов) внутри файлов c.Это означает, что скомпилированные файлы c не могут естественным образом обращаться к методам в скомпилированном коде c ++, даже если исходный код предполагает именно это.
Однако вы можете сказать компилятору, что метод будет вызываться "C"Таким образом, язык не будет кодировать пространство имен метода.Вы можете указать компилятору сделать это, изменив метод в вашем cpp так, чтобы он выглядел следующим образом:
extern "C" int methodName()
{
return 1;
}
methodName () теперь будет доступен из вашего скомпилированного файла C.