c调用cpp

创建个目录 创建4个文件 c.c--c文件 cpp.cpp--c++文件 cpp.hh--c++声明文件 Makefile

c.c

[javascript] view plaincopy
  1. #include "cpp.hh"
  2. int main()
  3. {
  4. cpp_fun();
  5. }

cpp.cpp

[cpp] view plaincopy
  1. #include "cpp.hh"
  2. #include <stdio.h>
  3. #ifdef __cplusplus
  4. extern "C"
  5. {
  6. #endif
  7. void cpp_fun()
  8. {
  9. printf("cpp_fun\n");
  10. }
  11. #ifdef __cplusplus
  12. }
  13. #endif

cpp.hh

[cpp] view plaincopy
  1. #ifdef __cplusplus
  2. extern "C" {
  3. #endif
  4. void cpp_fun();
  5. #ifdef __cplusplus
  6. }
  7. #endif

Makefile

[cpp] view plaincopy
  1. #   c  调用   cpp     函数
  2. c:
  3. gcc -c *.c
  4. g++ -c *.cpp
  5. gcc -o c_test *.o -lstdc++
  6. #   g++ -o c_test *.o
  7. clean:
  8. rm *.o c_test

make 一下 运行./c_test

执行显示如下:

[cpp] view plaincopy
  1. 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

[cpp] view plaincopy
  1. #include "c.h"
  2. #include <stdio.h>
  3. void c_fun()
  4. {
  5. printf("c_fun\n");
  6. }

c.h

[cpp] view plaincopy
  1. void c_fun();

cpp.cpp

[cpp] view plaincopy
  1. extern "C"{
  2. #include "c.h"
  3. };
  4. int main()
  5. {
  6. c_fun();
  7. return 0;
  8. }

Makefile

[cpp] view plaincopy
  1. #   cpp  调用 c   函数
  2. cpp:
  3. gcc -c *.c
  4. g++ -c *.cpp
  5. g++ -o cpp_test *.o
  6. clean:
  7. rm *.o cpp_test

make一下 然后执行./cpp_test

执行显示结果如下:

[cpp] view plaincopy
  1. c_fun

make clean 清除

linux下c和c++互相调用相关推荐

  1. linux下部署Tesseract OCR及调用

    官方源码:github 详细教程:Installing Tesseract for OCR linux下直接终端运行 sudo apt-get install tesseract-ocr 查看是否安装 ...

  2. linux下如何用c语言调用shell命令-转

    C程序调用shell脚本共有三种法子 :system().popen().exec系列函数 system()不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程, ...

  3. linux+swig+python,linux下使用swig让python调用C++(复杂版:包括多文件调用和链接库)...

    第一次用swig,网上找了各种资料,比如 http://www.cnblogs.com/kaituorensheng/p/4464117.html 入门可以看上面这个链接 但要么过于简单要么过于复杂 ...

  4. Linux下Tuxedo配置以及Java调用Tuxedo

    前言 因为业务需求,需要对接某部门的Tuxedo数据接口,但是那边提供的技术支持很少,Tuxedo相关资料网上不是很完善,以下是个人对Java调用Tuxedo相关整合,为方便个人和大家学习,不完善之处 ...

  5. 备忘:gcc在linux下打包so库并调用

    环境:Ubuntu, GCC 切换到准备编译的代码文件夹中,输入g++ *.cpp -fPIC -shared -o libname.so,name随便起,这时会生成一个libname.so文件. 把 ...

  6. linux下Qt调用C++库文件(.so)程序实现

    文章目录 主要内容 一.编程环境及实现方法 二.项目实现 1.创建项目 2.导入库文件 三.项目中遇到的问题 总结 主要内容 如标题所示,在linux下使用qtcreator创建项目调用C++库文件, ...

  7. linux 跟踪程序执行过程,用pvtrace和Graphviz实现对linux下C程序的函数调用跟踪

    用pvtrace和Graphviz实现对linux下C程序的函数调用跟踪 用pvtrace和Graphviz实现对linux下C程序的函数调用跟踪 1:功能介绍,使用本方法可以实现linux下C应用程 ...

  8. LINUX下c语言调用math.h库函数的注意事项

    2019独角兽企业重金招聘Python工程师标准>>> 在Ubuntu上做C语言程序练习时,用到了sqrt函数,尽管在源文件中已包含了math.h头文件,但在编译的时候总是提示sqr ...

  9. Linux下动态链接库调用

    Linux下动态链接库调用 2014-11-01 10:39 3人阅读 评论(0) 收藏 编辑 删除 Linux下动态链接库调用 2013-06-08 20:52:48|  分类:集成开发环境相关 | ...

最新文章

  1. Mybatis的select方法
  2. CentOS上安装skype
  3. Python Django 一对多逆向查询示例
  4. python networkx库_python之networkx库小结
  5. Flask和mysql多线程_数据库连接池Flask-SQLAlchemy中多线程安全的问题
  6. nginx(windows环境安装)
  7. linux内核重要结构体,Linux中list_head结构体相关 | 技术部落
  8. 第一次用AX2009正式版!
  9. java spring boot2 springMVC thymeleaf 整合案例
  10. 软件项目风险评估报告
  11. 寺庙招聘爆火:月薪15000,五险一金,早九晚五,周末双休,饭菜免费!网友:想出家了......
  12. 【多线程】解决SpringBoot热部署时layering-cache线程池被Tomcat Graceful shutdown,重新赋值方法区中 StatsServi
  13. 使用JLink SEGGER_RTT_printf()函数实现打印浮点数
  14. 合作开发收费系统——临时表解决用户重复登录问题
  15. Delivering Smiles:亚马逊的温暖进行时
  16. 基于BLG7289的数码管显示
  17. 【leetcode】483. 最小好进制 Java题解
  18. 问题 H: 口袋的天空(Kruscal)
  19. android锁机病毒源代码,Android 锁机样本母体分析
  20. 一体化运维平台规划介绍

热门文章

  1. SQL Server 数据库查找重复记录的几种方法
  2. C# 字符,字符串和文本处理。
  3. H5+JS实现《Just Do 8》游戏源码分享
  4. 使用友盟分享心得(SSO登陆,不能获取accesstoken,不能跳转APPSSO登陆的问题)
  5. 使用语句修改数据表结构
  6. 给git配置http代理
  7. 如何在CentOS 5.5上安装Kippo蜜罐
  8. 201671010456-张琼 实验十四 团队项目评审课程学习总结
  9. CCF 差分约束--201809再卖菜
  10. UWP 响应键盘组合快捷键