- 创建dll.c文件,内容如下:
#include <stdio.h>
void dll_fun(void)
{
  printf("hi,sir!\n");
} 
 - 创建静态库,分二步:
gcc -c -fPIC dll.c  //create dll.o
gcc -shared -fPIC -o libdll.so dll.o //create libdll.so 
 至此,动态库创建完成。 
 参数-fPIC使.so文件的代码段变为真正意义上的共享, 
 如果不加-fPIC,则加载.so文件的代码段时,代码段引用的数据对象需要重定位。 
 3. 测试动态库的调用 
 创建main.c文件,内容如下:
#include <stdio.h> 
int main(void)
{
  printf("call dll(.so)\n");
  dll_fun(); 
  return 0;
} 
 编译命令:
gcc -o main main.c -L. -ldll 
 其中-L.:表示在当前目录查找库文件,如果写为:-L./lib 则表示在当前目录的lib目录下查找库文件。 
 -ldll:表示查找的动态库名字为dll,生成的动态库名字为 libdll.so,链接时需要去头去尾,去掉lib和.so,剩下的dll即为要查找的名字。
- 运行程序:
./main
结果输出: call dll(.so) hi,sir!