c調用cpp
創建個目錄 創建4個文件 c.c--c文件 cpp.cpp--c++文件 cpp.hh--c++聲明文件 Makefile
c.c
- #include?"cpp.hh"??
- ??
- int?main()??
- {??
- ????cpp_fun();??
- }??
cpp.cpp
- #include?"cpp.hh"??
- #include?<stdio.h>??
- ??
- #ifdef?__cplusplus??
- extern?"C"??
- {??
- #endif??
- ??
- void?cpp_fun()??
- {??
- ????printf("cpp_fun\n");??
- }??
- ??
- #ifdef?__cplusplus??
- }??
- #endif??
cpp.hh
- #ifdef?__cplusplus??
- extern?"C"?{??
- #endif??
- ??
- void?cpp_fun();??
- ??
- #ifdef?__cplusplus??
- }??
- #endif??
Makefile
- #???c??調用???cpp?????函數??
- c:??
- ????gcc?-c?*.c??
- ????g++?-c?*.cpp??
- ????gcc?-o?c_test?*.o?-lstdc++??
- #???g++?-o?c_test?*.o??
- ??
- clean:??
- ????rm?*.o?c_test??
make?一下 運行./c_test
執行顯示如下:
- cpp_fun??
這里Makefile中用g++ -o c_test *.o也可以編譯成功 用gcc需要指定包含c++標準庫libstdc++.so
make clean?清除
?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^_?^
c++調用c
創建個目錄 創建4個文件 c.c--c文件 cpp.cpp--c++文件 c.h--c聲明文件 Makefile
c.c
- #include?"c.h"??
- #include?<stdio.h>??
- ??
- void?c_fun()??
- {??
- ????printf("c_fun\n");??
- }??
c.h
- void?c_fun();??
cpp.cpp
- extern?"C"{??
- #include?"c.h"??
- };??
- ??
- int?main()??
- {??
- ????c_fun();??
- ????return?0;??
- }??
Makefile
- #???cpp??調用?c???函數??
- cpp:??
- ????gcc?-c?*.c??
- ????g++?-c?*.cpp??
- ????g++?-o?cpp_test?*.o??
- ??
- clean:??
- ????rm?*.o?cpp_test??
make一下 然后執行./cpp_test
執行顯示結果如下:
- c_fun??
make clean 清除