假设我写了一个aaaa.h , aaaa.c 来实现一组函数功能
#ifndef AAAA_H
#define AAAA_H
#include<stdio.h>
void fun();
#endif
#inlcude "aaaa.h"
void fun()
{
printf("test fun !");
}
这个时候,有个bbb.cpp来调用 fun函数
#include "aaaa.h"
int main()
{
//调用C语言函数
fun();
return 0;
}
不好意思,你会遇见如下报错
undefined reference to fun
正确的解决方法,需要在C语言 添加 extern “C”:
#ifndef AAAA_H
#define AAAA_H
#ifdef __cplusplus
extern "C" {
#endif
#include<stdio.h>
void fun();
#ifdef __cplusplus
}
#endif/* End of the 'extern "C"' block */
#endif