如何用c语言调用c++做成的动态链接库
今天在做东西的时候遇到一个问题,就是如何在C语言中调用C++做的动态链接库so文件
如果你有一个c++做的动态链接库.so文件,而你只有一些相关类的声明, 那么你如何用c调用呢,别着急,本文通过一个小小的例子,让你能够很爽的搞定.
链接库头文件:
head.h
class A { public: A(); virtual ~A(); int gt(); int pt(); private: int s; }; // 何问起 hovertree.com
firstso.cpp
#include <iostream> #include "head.h" A::A(){} A::~A(){} int A::gt() { s=10; } int A::pt() { std::cout<<s<<std::endl; } // 何问起 hovertree.com
编译命令如下:
g++ -shared -o libmy.so firstso.cpp
这时候生成libmy.so文件,将其拷贝到系统库里面:/usr/lib/
进行二次封装:
secso.cpp
#include <iostream> #include "head.h" extern "C" { int f(); int f() { A a; a.gt(); a.pt(); return 0; } } // 何问起 hovertree.com
编译命令:
gcc -shared -o sec.so secso.cpp -L. -lmy
这时候生成第二个.so文件,此时库从一个类变成了一个c的接口.
拷贝到/usr/lib
下面开始调用:
test.c
#include "stdio.h" #include "dlfcn.h" #define SOFILE "sec.so" int (*f)(); int main() { void *dp; dp=dlopen(SOFILE,RTLD_LAZY); f=dlsym(dp,"f"); f(); return 0; } // 何问起 hovertree.com
编译命令如下:
gcc -rdynamic -s -o myapp test.c
运行Z$./myapp
10
$
http://www.cnblogs.com/roucheng/p/3456005.html
转载于:https://www.cnblogs.com/roucheng/p/cdll.html
如何用c语言调用c++做成的动态链接库相关推荐
- 如何用java语言调用tensorflow训练好的模型
1.TensorFlow的训练模型在Android和Java的应用及调用 2.tensorflow的python离线训练java在线预测方案 3.tensorflow训练的模型在java中的使用 4. ...
- linux下如何用c语言调用shell命令-转
C程序调用shell脚本共有三种法子 :system().popen().exec系列函数 system()不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程, ...
- c 语言关机指令,如何用C语言调用关机指令?
#include "stdio.h" #include #include void main() { char cmd[255]={0}; char str[10]; int i; ...
- 如何用C#语言构造蜘蛛程序
"蜘蛛"(Spider)是Internet上一种很有用的程序,搜索引擎利用蜘蛛程序将Web页面收集到数据库,企业利用蜘蛛程序监视竞争对手的网站并跟踪变动,个人用户用蜘蛛程序下载We ...
- 转:如何用C#语言构造蜘蛛程序
如何用C#语言构造蜘蛛程序 "蜘蛛"(Spider)是Internet上一种很有用的程序,搜索引擎利用蜘蛛程序将Web页面收集到数据库,企业利用蜘蛛程序监视竞争对手的网站并跟踪变动 ...
- Linux C语言调用C++动态链接库
Linux C语言调用C++动态链接库 标签: C调用C++库 2014-03-10 22:56 3744人阅读 评论(0) 收藏 举报 分类: [Linux应用开发](48) 版权声明:本文为博主原 ...
- [转载]如何用C#语言构造蜘蛛程序
[转载]如何用C#语言构造蜘蛛程序 出处:未知了.. "蜘蛛"(Spider)是Internet上一种很有用的程序,搜索引擎利用蜘蛛程序将Web页面收集到数据库,企业利用蜘蛛程序监 ...
- 如何下载c语言游戏,如何用C语言编写游戏.doc
<如何用C语言编写游戏.doc>由会员分享,可在线阅读,更多相关<如何用C语言编写游戏.doc(71页珍藏版)>请在皮匠网上搜索. 1.如何用C语言编写游戏网络游戏是常谈的话题 ...
- 如何用C语言写一个web服务器的基础功能
我们都知道,学一门语言,只是单独看了就不写的话是很容易出现眼高手低的,所以,今天摩杜云要给大家分享的内容,就是如何用C语言写一个web服务器的基础功能,希望大家看完有所收获. 服务器架构 目标架构 以 ...
最新文章
- 全球支付平台paypal社招一面,二面合并面经
- 详解基于朴素贝叶斯的情感分析及 Python 实现
- PHP7 学习笔记(六)403 Forbidden - WAMP Server 2.5
- curl get请求_Linux curl 常用示例你都 Get 了吗?| CSDN 博文精选
- 一个网站自动化测试程序的设计与实现
- html php获取post数据格式,html - php文件无法得到POST过来的数据
- java向Excel文件写入数据
- 32 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义差异码
- 解决HuggingFace加载预训练模型时报错TypeError: expected str, bytes or os.PathLike object, not NoneType
- UVA665 LA5658 False coin【暴力】
- const的理解、const指针、指向const的指针
- 5.数据中台 --- 数据汇聚联通:打破企业数据孤岛
- pytorch加载模型报错RuntimeError: Error(s) in loading state_dict for ResNet:Missing key(s) in stat
- VB程序使用管理员权限
- cad卸载工具_Adobe软件卸载与常见问题解决方案
- 导师对计算机学生论文的评语,导师对论文的学术评语
- 多渠道打包,生成不同包名的包
- 国开《Android智能手机编程》终结性考核
- C语言简介及进制换算
- 小功能⭐️U3D异步加载功能