加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱资讯网 (https://www.52junxun.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux生成(加载)动态库静态库和加载示例方法

发布时间:2022-10-05 11:41:03 所属栏目:Linux 来源:
导读:  这篇文章主要介绍了linux生成(加载)动态库静态库示例方法,大家参考使用

  动态库的生成:

  1、/*mysum.c*/

  复制代码 代码如下:

  #include

  #include "src.h"

  int
  这篇文章主要介绍了linux生成(加载)动态库静态库示例方法,大家参考使用
 
  动态库的生成:
 
  1、/*mysum.c*/
 
  复制代码 代码如下:
 
  #include
 
  #include "src.h"
 
  int sum(int a,int b)
 
  {
 
  return (a+b);
 
  }
 
  2、/*mysum.h*/
 
  复制代码 代码如下:
 
  #ifndef __SRC_H__
 
  #define __SRC_H__
 
  int sum(int a,int b);
 
  #endif
 
  3、/*main.c*/
 
  复制代码 代码如下:
 
  #include
 
  extern int sum(int a,int b);
 
  /*
 
  #include
 
  #include "mysum.h"
 
  */
 
  int main()
 
  {
 
  int a,b,c=0;
 
  printf("input a and b:\n");
 
  scanf("%d %d",&a,&b);
 
  c = sum(a,b);
 
  printf("c = %d\n",c);
 
  return 0;
 
  }
 
  4、生成动态库
 
  复制代码 代码如下:
 
  gcc -c -fPIC mysum.c mysum.h //生成mysum.o文件
 
  gcc -shared -fPIC -o libmysum.so mysum.o //生成动态库文件linux动态库,默认的命名方式为lib+名称.so
 
  5、动态库静态加载
 
  复制代码 代码如下:
 
  gcc -o main main.c -L. -lmysum -Wall
 
  或
 
  gcc -o main main.c -lmysum -Wall
 
  6、执行 ./main时会报告错误,提示无法加载libmysum.so共享库。
 
  7、处理方法有三:
 
  方法一:
 
  将动态库拷贝到 /lib或 /usr/lib中去
 
  如:sudo cp libmysum.so /lib
 
  方法二:
 
  改变环境变量:
 
  LD_LIBRARY_PATH=$PWD export LD_LIBRARY_PATH
 
  方法三:
 
  在编译时指定共享库的路径:
 
  gcc -o main1 -Wl,-rpath,.-L. -louyang main.o
 

(编辑:我爱资讯网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!