1、CPP调用C函数和C调用CPP函数,Makefile编写思路
先g++ -c或gcc -c将cpp文件或c文件编译成.o文件
然后gcc或g++将.o和c文件或cpp文件编译成bin文件
2、CPP和C函数区别
前者__addii,表示有两个参数,分别为整形,便于多态和重载
后者__add
两者的区别导致连接时会出错
3、CPP调用C函数,Makefile示例
ccpptest:cppfile exe
cppfile:cppExample.cpp
g++ -c cppExample.cpp -o cppExample.o
exe:
gcc cFile.c cppExample.o -lstdc++ -o exe
clean:
rm -f exe
rm -f *.o
4、extern "C"作用
CPP调用C函数:extern "C"在CPP文件中,main函数在CPP文件中,作用是告诉编译器,调用的这个函数是C函数,将其编译成CPP形式的函数
C调用CPP函数:extern “C“也在CPP文件中,main函数在C文件中,作用是告诉编译器,调用的这个函数是CPP函数,将其编译成C形势的函数
5、参考资料
(1)CPP和C编译成的函数名区别
http://blog.csdn.net/david_xtd/article/details/7448313 (C和C++混合编译)
(2)编译c文件出现undefined reference to `__gxx_personality_v0'