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

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

2019-11-11 02:03:59
字体:
来源:转载
供稿:网友

1.环境 

Ubuntu14.04  

gcc 4.8.4

g++ 4.8.4

2.库文件

1)源码

//clTest.c    int add(int a, int b) {      return a + b;  } 2)生成库文件

cd到clTest.c所在目录,输入命令

gcc -shared -o libclTest.so clTest.c会在当前目录生成文件libclTest.so

3.主程序

1)源码

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

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

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

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

输入命令

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

图片精选