预览加载中,请您耐心等待几秒...
1/9
2/9
3/9
4/9
5/9
6/9
7/9
8/9
9/9

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

如何在C语言中调用C++做的动态链接库如何在C语言中调用C++做的动态链接库如果你有一个c++做的动态链接库.so文件,而你只有一些相关类的声明,那么你如何用c调用呢?下面百分网小编带大家一起来看看详细内容,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!链接库头文件:head.hclassA{public:A();virtual~A();intgt();intpt();private:ints;};firstso.cpp#include<iostream>#include"head.h"A::A(){}A::~A(){}intA::gt(){s=10;}intA::pt(){std::cout<<s<<std::endl;}编译命令如下:g++-shared-olibmy.sofirstso.cpp这时候生成libmy.so文件,将其拷贝到系统库里面:/usr/lib/进行二次封装:secso.cpp#include<iostream>#include"head.h"extern"C"{intf();intf(){Aa;a.gt();a.pt();return0;}}编译命令:gcc-shared-osec.sosecso.cpp-L.-lmy这时候生成第二个.so文件,此时库从一个类变成了一个c的接口.拷贝到/usr/lib下面开始调用:test.c#include"stdio.h"#include"dlfcn.h"#defineSOFILE"sec.so"int(*f)();intmain(){void*dp;dp=dlopen(SOFILE,RTLD_LAZY);f=dlsym(dp,"f");f();return0;}编译命令如下:gcc-rdynamic-s-omyapptest.c运行Z$./myapp10$