转自:http://stackoverflow.com/questions/9334650/linker-error-calling-c-function-from-objective-c
If you are using c function in c++ file. you should use extern "c"{}
. In .h file
#ifdef __cplusplus
extern "C" {
#endif
swrve_currency_given(parameter1, parameter2, parameter3);// a c function
#ifdef __cplusplus
}
#endif
extern "C" is meant to be recognized by a C++ compiler and to notify the compiler that the noted function is (or to be) compiled in C style.
If you're linking to a library that was compiled as C code. use
extern "C" {
#include "c_only_header.h"
}
Take a look at When to use extern "C" in C++?