У меня есть следующие файлы.
foo.h(заголовочный файл С++)
foo.mm(файл С++)
test_viewcontroller.h(файл заголовка цели c)
test_viewcontroller.m(Objective c file)
Я объявил метод donothing() в foo.h и определил его в foo.mm.Lets say it
двойное далекое (двойное a) { return a; }
Теперь я пытаюсь вызвать эту функцию в test_viewcontroller.m
double var = donothing (somevar);
Я получаю ошибку компоновщика, которая говорит "не может найти символы" _donothing() в test_viewcontroller.o
collect2: ld возвращен 1 статус выхода
Может ли кто-нибудь указать мне, что не так?
Позвольте мне быть точным:
#ifdef __cplusplus
extern "C"
{
char UTMLetterDesignator(double Lat);
NSString * LLtoUTM(double Lat,double Long,double UTMNorthing, double UTMEasting);
double test(double a);
}
#endif
@Carl
Я включил свой пример кода. Говоря, что мне нужно обернуть только метод test() в ifdef.I не понимаю, какую разницу он может сделать. Можете ли вы объяснить?