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生成可执行文件cppcppl14).执行
cd到可执行文件cppcppl1所在目录
输入命令
./cppcppl1
新闻热点
疑难解答
图片精选