test.cpp
#include "stdio.h"
extern "C"{
void print();
}
void print(){
printf("songbai");
}
class Lynn{
public:
Lynn();
};
编译:
g++ test.cpp -fPIC -shared -o libtest.so
test_c.cpp
#include <stdio.h>
#include <dlfcn.h>
int main(int argc, char *argv[]){
void * libm_handle = NULL;
void (*print)();
char *errorInfo;
float result;
// dlopen 函数还会自动解析共享库中的依赖项。这样,如果您打开了一个依赖于其他共享库的对象,它就会自动加载它们。
// 函数返回一个句柄,该句柄用于后续的 API 调用
libm_handle = dlopen("/home/saxon/work/Unix/libtest.so", RTLD_LAZY);
// 如果返回 NULL 句柄,表示无法找到对象文件,过程结束