我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

动态库的生成:

1、


#include <stdio.h>
#include "class="lazy" data-src.h"


int sum(int a,int b)
{
return (a+b);
}


2、


#ifndef __class="lazy" data-src_H__
#define __class="lazy" data-src_H__

int sum(int a,int b);

#endif


3、


#include <stdio.h>

extern int sum(int a,int b);

int main()
{
int a,b,c=0;
printf("input a and b:n");
scanf("%d %d",&a,&b);
c = sum(a,b);
printf("c = %dn",c);
return 0;
}


4、生成动态库


gcc -c -fPIC mysum.c mysum.h //生成mysum.o文件

gcc -shared -fPIC -o libmysum.so mysum.o //生成动态库文件,默认的命名方式为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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

动态库的生成: 1、#include #include "src.h" int sum(int a,int b){return (a+b);}2、#ifndef __SRC_H_
2022-06-04

linux中怎么生成动态库和静态库

linux中怎么生成动态库和静态库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。动态库的生成:1、代码如下:#include #in
2023-06-09

Linux动态库和静态库的示例分析

今天就跟大家聊聊有关Linux动态库和静态库的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。函数库分为静态库和动态库两种。创建Linux静态库和Linux动态库和使用它们在这
2023-06-16

php动态库无法加载的解决方法

这篇文章主要为大家展示了php动态库无法加载的解决方法,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“php动态库无法加载的解决方法”这篇文章吧。php有什么用php是一个嵌套的缩写名称,是英文超级
2023-06-06

linux静态库和动态库的创建与使用方法

这篇文章主要介绍“linux静态库和动态库的创建与使用方法”,在日常操作中,相信很多人在linux静态库和动态库的创建与使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux静态库和动态库的创建与使
2023-06-13

Linux程序运行时加载动态库失败的解决方法

linux下不能加载动态库问题 当出现下边异常情况./test: error while loading shared libraries: libmfs_open.so: cannot open shared object file: N
2022-06-04

Uniapp静态页面未加载的原因和解决方法

随着移动互联网的普及,越来越多的企业开始转型为移动应用程序,而采用web技术构建应用程序成为一种趋势。Uniapp作为一种新兴的跨平台解决方案,可以通过一份代码打造IOS、Android、H5等多种应用,广受开发者欢迎。然而,在使用Uniapp开发应用程序时,很多开发者会遇到一个问题——静态页面未加载。本文将会从以下几个方面来探讨这个问题的原因以及解决方案:1. 什么是Unia
2023-05-14

python中动态加载模块和类方法实现

python中动态加载模块和类方法实现测试代码 文件名: mytest.py 具体代码如下: 注意:模块名,类名,方法名都是变量。 #coding=UTF-8class TestClass: def sub(self,a,b):
2023-01-31

Linux下动态链接库加载路径及搜索路径问题

引子 近日,服务器迁移后,偷懒未重新编译nginx的,直接./nginx启动,结果遇到如下问题: “error while loading shared libraries” 这是是因为需要的动态库不在动态链接器ld.so的搜索路径导致。
2022-06-04

编程热搜

目录