Llamando al método C ++ desde el objetivo C
Tengo los siguientes archivos.
foo.h (archivo de encabezado C ++)
foo.mm (archivo C ++)
test_viewcontroller.h (archivo de encabezado del objetivo c)
test_viewcontroller.m (archivo Objective c)
He declarado un método donothing () en foo.h y lo he definido en foo.mm. Digamos que es
doble donothing (doble a) {return a; }
Ahora, trato de llamar a esta función en test_viewcontroller.m
doble var = nada (somevar);
Recibo un error de enlace que dice "no se pueden encontrar los símbolos" _donothing () en test_viewcontroller.o
collect2: ld devolvió 1 estado de salida
¿Alguien puede señalarme qué está mal?
Déjame ser preciso:
#ifdef __cplusplus
extern "C"
{
char UTMLetterDesignator(double Lat);
NSString * LLtoUTM(double Lat,double Long,double UTMNorthing, double UTMEasting);
double test(double a);
}
#endif
@Carl
He incluido mi ejemplo de código. Estoy diciendo que necesito ajustar solo el método test () en ifdef. No entiendo qué diferencia puede hacer. ¿Puede explicarlo?