动态库的生成
/*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