background image

c/c++ 

 

直接使用动态库 dlopen

把各个版本编译成动态库,xx.so ,提供统一的接口进行调用。这里使用的工
具是 dlxx 系列函数

    dlopen void *dlopen(const char *filename, int flag);    装载动态

    dlcloseint dlclose(void *handle);

    dlerrorchar *dlerror(void);返回可读字符串

    dladdr

    dlsymvoid *dlsym(void *handle, const char *symbol);

    dlvsym

    例子

    #include <stdio.h>

    #include <stdlib.h>

    #include <dlfcn.h>

    //gcc flag

    // gcc t_dlopen.c -ldl

    int

    main(int argc, char **argv)

    {

    void *handle;

    double (*cosine)(double);

    char *error;

    handle = dlopen("libm.so", RTLD_LAZY);

    if (!handle  

) {