首页 > 编程 > C++ > 正文

c++调用c++的so动态库

2019-11-10 18:08:17
字体:
来源:转载
供稿:网友

1.环境 

Ubuntu 14.04 

g++ 4.8.4

2.没有类的情况

1)库文件

a)源码

//cppl1.cppextern "C" int add(int a, int b) {	return a + b;}b)生成库文件

cd到cppl1.cpp所在目录,输入命令

g++ -shared -o libcppl1.so cppl1.cpp会在当前目录生成文件libcppl1.so2)主程序

a)源码

//cppcppl1.cpp#include <stdio.h>#include <dlfcn.h>using namespace std;int main() {	typedef int(*t_add)(int a, int b);	void *handle;	handle = dlopen("./libcppl1.so", RTLD_LAZY);	t_add myadd = (t_add)dlsym(handle, "add");	int result = myadd(1, 2);	dlclose(handle);	PRintf("%d/n", result);}b)编译成可执行文件

cd到cppcppl1.cpp所在目录,输入命令

g++ cppcppl1.cpp -o cppcppl1 -ldl生成可执行文件cppcppl1

4).执行

cd到可执行文件cppcppl1所在目录

输入命令

./cppcppl1


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选