name.cpp
文件中封装一个 c函数如: extern "C" const char* get_my_name(); 关键对于 extern "C" 声明. 加上 extern "C"后,会指示编译器这部分代码按C语言(而不是C++)的方式进行编译, 这样不会有链接错误.
#include <string>
using namespace std;
extern "C" const char* get_my_name();
class MyObj {
public:
const char* get_name() {
return "david";
}
};
const char* get_my_name() {
MyObj obj;
return obj.get_name();
}
对于需要调用的c 文件中 直接 extern 声明,和普通 .c文件中定义的函数一样.
extern const char* get_my_name();
int main(int argc, char** argv) {
av_log(NULL, AV_LOG_INFO, "%s\n", get_my_name());
}
这里是改了 ffmpeg源码测试:
执行 生成, 可以看到 david 政策输出.