linux下c和c++互相调用
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 清除
linux下c和c++互相调用相关推荐
- linux下部署Tesseract OCR及调用
官方源码:github 详细教程:Installing Tesseract for OCR linux下直接终端运行 sudo apt-get install tesseract-ocr 查看是否安装 ...
- linux下如何用c语言调用shell命令-转
C程序调用shell脚本共有三种法子 :system().popen().exec系列函数 system()不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程, ...
- linux+swig+python,linux下使用swig让python调用C++(复杂版:包括多文件调用和链接库)...
第一次用swig,网上找了各种资料,比如 http://www.cnblogs.com/kaituorensheng/p/4464117.html 入门可以看上面这个链接 但要么过于简单要么过于复杂 ...
- Linux下Tuxedo配置以及Java调用Tuxedo
前言 因为业务需求,需要对接某部门的Tuxedo数据接口,但是那边提供的技术支持很少,Tuxedo相关资料网上不是很完善,以下是个人对Java调用Tuxedo相关整合,为方便个人和大家学习,不完善之处 ...
- 备忘:gcc在linux下打包so库并调用
环境:Ubuntu, GCC 切换到准备编译的代码文件夹中,输入g++ *.cpp -fPIC -shared -o libname.so,name随便起,这时会生成一个libname.so文件. 把 ...
- linux下Qt调用C++库文件(.so)程序实现
文章目录 主要内容 一.编程环境及实现方法 二.项目实现 1.创建项目 2.导入库文件 三.项目中遇到的问题 总结 主要内容 如标题所示,在linux下使用qtcreator创建项目调用C++库文件, ...
- linux 跟踪程序执行过程,用pvtrace和Graphviz实现对linux下C程序的函数调用跟踪
用pvtrace和Graphviz实现对linux下C程序的函数调用跟踪 用pvtrace和Graphviz实现对linux下C程序的函数调用跟踪 1:功能介绍,使用本方法可以实现linux下C应用程 ...
- LINUX下c语言调用math.h库函数的注意事项
2019独角兽企业重金招聘Python工程师标准>>> 在Ubuntu上做C语言程序练习时,用到了sqrt函数,尽管在源文件中已包含了math.h头文件,但在编译的时候总是提示sqr ...
- Linux下动态链接库调用
Linux下动态链接库调用 2014-11-01 10:39 3人阅读 评论(0) 收藏 编辑 删除 Linux下动态链接库调用 2013-06-08 20:52:48| 分类:集成开发环境相关 | ...
最新文章
- Mybatis的select方法
- CentOS上安装skype
- Python Django 一对多逆向查询示例
- python networkx库_python之networkx库小结
- Flask和mysql多线程_数据库连接池Flask-SQLAlchemy中多线程安全的问题
- nginx(windows环境安装)
- linux内核重要结构体,Linux中list_head结构体相关 | 技术部落
- 第一次用AX2009正式版!
- java spring boot2 springMVC thymeleaf 整合案例
- 软件项目风险评估报告
- 寺庙招聘爆火:月薪15000,五险一金,早九晚五,周末双休,饭菜免费!网友:想出家了......
- 【多线程】解决SpringBoot热部署时layering-cache线程池被Tomcat Graceful shutdown,重新赋值方法区中 StatsServi
- 使用JLink SEGGER_RTT_printf()函数实现打印浮点数
- 合作开发收费系统——临时表解决用户重复登录问题
- Delivering Smiles:亚马逊的温暖进行时
- 基于BLG7289的数码管显示
- 【leetcode】483. 最小好进制 Java题解
- 问题 H: 口袋的天空(Kruscal)
- android锁机病毒源代码,Android 锁机样本母体分析
- 一体化运维平台规划介绍