自己编译了一下so,在程序里使用dlopen来调用。但是dlopen总是返回失败,使用dlerror查看错误原因,发现undefined symbol 原因造成的。
对so使用ldd -r命令发现很多undefined symbol的函数。
undefined symbol: _ZN6apache6thrift9transport7TSocket14setSendTimeoutEi (./libpersonalize.so)
检查cmake的脚本,发现没有把链接的的库,放到链接库列表中。修改cmake脚本,把需要的库放到链接库列表,就ok了。