Вызов метода C ++ из Objective C

У меня есть следующее файлы.

foo.h (файл заголовка C ++)
foo.mm (файл C ++)
test_viewcontroller.h (файл заголовка объекта c)
{{1} } test_viewcontroller.m (файл Objective c)

Я объявил метод donothing () в foo.h и определил его в foo.mm. Допустим, это

double donothing (double 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. Я не понимаю, какая разница. Можете ли вы объясните пожалуйста?

14
задан Janani 16 December 2010 в 01:09
поделиться