//.h
#pragma once

#if __cplusplus
extern "C"{//必须加,因C++会对name进行重新命名 **add**
#endif
int add(const int &numa,const int &numb);
#if __cplusplus
}
#endif

//.cpp
#include"dltest.h"

int myadd(const int &numa,const int &numb)
{
    return numa+numb;
}

g++ -fPIC -shared dltest.cpp -o libdltest.so

//.main

#include
#include
using namespace std;

typedef int(*Func)(const int&,const int&);
int main()
{
    void *handle=dlopen("/data/home/libdltest.so",RTLD_NOW);
    char *error;

    dlerror();
    Func func=(Func)dlsym(handle,"myadd");
    if((error=dlerror())!=NULL)
    {   
        cout<<"error:"< 
  
参考教程:http://tldp.org/HOWTO/Program-Library-HOWTO/dl-libraries.html#DL-LIBRARY-EXAMPLE

感谢原作者