Ubuntu 动态库

前端之家收集整理的这篇文章主要介绍了Ubuntu 动态库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. 创建dll.c文件内容如下:
#include <stdio.h>
void dll_fun(void)
{
  printf("hi,sir!\n");
}
  1. 创建静态库,分二步:
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即为要查找的名字。

  1. 运行程序:
./main

结果输出: call dll(.so) hi,sir!

原文链接:https://www.f2er.com/ubuntu/351892.html

猜你在找的Ubuntu相关文章