您的位置:首页 > 其它

QLibrary加载so的注意事项

2016-04-13 13:24 211 查看


加载库时,QLibrary搜索在所有特别的系统库路径,除非文件名有一个绝对路径。

这句话说明了QLibrary的load()路径问题,倘若系统库已经存在这个运行库名称,那只会加载系统上面的那一个,所以要加载存在的运行库文件,就需要做两件事,一是运行库重命名,二是load配置的是绝对路径。在android的自动更新中,要求只更新so文件,这时候需要用到。
代码举例:

             
QDir
dir("./lib/libTestb.so");

QString path = dir.absolutePath();

QLibrary *m_li = NULL;

m_li = new QLibrary(path);

m_li->load();

typedef int(*Test)(int a, int b);

Test t = (Test)m_li->resolve("test");

int m1;

if(t){

m1 = t(11,22);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: