// my_c_function.c
//
#include <stdio.h>
#include "my_c_function.h"
void print_hello_from_c() {
printf("Hello from C!\n");
}
// my_c_function.h
extern "C"
{
void print_hello_from_c();
}
// my_cpp_code.cpp
//
#include "my_c_function.h"
extern "C" {
void print_hello_from_c();
}
int main() {
print_hello_from_c(); // 调用C函数
return 0;
}
g++ -o my_c_function.o -c my_c_function.c -I ./
g++ -o my_cpp_code.o -c my_cpp_code.cpp
g++ my_c_function.o my_cpp_code.o -o my_program
用g++ 编译时,如果my_c_function.h 里面有extern “C” 是c的编译方式, 调用如果不extern "C" 会编译失败
// my_c_function.h
print_hello_from_c