我有一个共享库,里面存有一些函数。我想通过从另一个程序调用该库来访问这些函数。我早些时候在C中做过这个。
现在我想用C ++做同样的事情。我对C ++很陌生,非常需要任何建议。顺便说一句,共享库是用C语言编写的。我仍然可以在C ++程序中调用它并使用它的所有功能。 请帮我。一个示例程序将非常有用。
我使用的是ubuntu 14.04,编译器是随附的本机g ++。
答案 0 :(得分:4)
使用dlopen加载共享库,并使用dlsym加载给定符号。与-ldl
链接。
所以给定一个共享库hello.cpp,编译g++ -shared -fPIC -o libhello.so hello.cpp
#include <cstdio>
extern "C" void hello( const char* text ) {
printf("Hello, %s\n", text);
}
(共享库应命名为lib*.so[.*]
)
现在调用main.cpp,编译:{{1}}
g++ -o main main.cpp -ldl
答案 1 :(得分:0)
你说你已经在C中这样做了。实际上C ++是基于C的,所以你仍然可以像以前那样做。
通常需要执行以下步骤: