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
生成可执行文件cppclTest
4.执行
cd到可执行文件cppclTest所在目录
输入命令
./cppclTest