栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

动态库的生成:

1、

复制代码 代码如下:
#include
#include "src.h"


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

 

2、

复制代码 代码如下:
#ifndef __SRC_H__
#define __SRC_H__

int sum(int a,int b);

#endif

 

3、

复制代码 代码如下:
#include

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/37817.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号