首先编写一个hello.c
#include <stdio.h>
int hello()
{
printf("hello lynne!\n");
}
编译命令:gcc -c hello.c,生成hello.o文件
编译命令:gcc -shared -o libtest.so hello.o得到libtest.so动态连接库文件
正题开始:
创建一个qt空工程,右键add new一个mian源文件
#include <stdio.h>
#include <QLibrary>
int main(int argc, char *argv[])
{
QLibrary *m_li = NULL;
//加载动态库
//注意库要给路径否则加载不成功,libhello.so放在当前工程的目录下,所以路径为./
m_li = new QLibrary("./libhello.so");
m_li->load();
if (!m_li->isLoaded())
{
printf("failed!\n");
return 0;
}
//定义函数指针
typedef void (*Fun)();
//resolve得到库中函数地址
Fun hello = (Fun)m_li->resolve("hello");
if (hello)
{
hello();
}
//卸载库
m_li->unload();
return 0;
}
运行后输出
hello lynne!
代码实例下载:http://download.csdn.net/detail/wanglin754/3941810