Linux下使用动态链接库
方法一:使用dlopen打开库并使用dlsym调用动态库中函数
dll.c文件
#include
#include
int main()
{
void *libc = NULL;
void (*dll_x_printf)(char *str) = NULL;
char *err;
/* directly used function in libprintf.so, because we had linked */
//x_printf("direct used printf");
libc = dlopen("/home/wei.xuan/study/dll/libprintf.so", RTLD_NOW);
if (NULL != libc)
{
dll_x_printf = dlsym(libc, "x_printf");
if (NULL == dll_x_printf)
{
printf("can't find x_printf\n");
}
else
{
(*dll_x_printf)("hello, world\n")
}
dlclose(libc);
}
else
{
err = dlerror();
printf("libprintf.so failed! [%s]\n", err