linux

位置:IT落伍者 >> linux >> 浏览文章

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


发布日期:2022年02月02日
 
linux生成(加载)动态库静态库和加载示例方法

动态库的生成

/*mysumc*/

复制代码 代码如下:

#include <stdioh>

#include srch

int sum(int aint b)

{

return (a+b);

}

/*mysumh*/

复制代码 代码如下:

#ifndef __SRC_H__

#define __SRC_H__

int sum(int aint b);

/*mainc*/

复制代码 代码如下:

#include <stdioh>

extern int sum(int aint b);

/*

#include <stdioh>

#include mysumh

*/

int main()

{

int abc=;

printf(input a and b:\n);

scanf(%d %d&a&b);

c = sum(ab);

printf(c = %d\nc);

return ;

}

生成动态库

复制代码 代码如下:

gcc c fPIC mysumc mysumh //生成mysumo文件

gcc shared fPIC o libmysumso mysumo //生成动态库文件默认的命名方式为lib+名称so

动态库静态加载

复制代码 代码如下:

gcc o main mainc L lmysum Wall

gcc o main mainc lmysum Wall

执行 /main时会报告错误提示无法加载libmysumso共享库

处理方法有三

方法一

将动态库拷贝到 /lib或 /usr/lib中去

sudo cp libmysumso /lib

方法二

改变环境变量

LD_LIBRARY_PATH=$PWD export LD_LIBRARY_PATH

方法三

在编译时指定共享库的路径

gcc o main WlrpathL louyang maino

上一篇:linux Shell学习笔记第五天

下一篇:如何在Linux环境模拟DOS命令