知识大全 linux生成(加载)动态库静态库和加载示例方法
Posted 知
篇首语:听闻少年二字,当与平庸相斥。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 linux生成(加载)动态库静态库和加载示例方法相关的知识,希望对你有一定的参考价值。
动态库的生成
/*mysum c*/
复制代码 代码如下:
#include <stdio h>#include src h
int sum(int a int b)return (a+b);
/*mysum h*/
复制代码 代码如下:
#ifndef __SRC_H__#define __SRC_H__
int sum(int a int b);
/*main c*/
复制代码 代码如下:
#include <stdio h>
extern int sum(int a int b);
/*
#include <stdio h>
#include mysum h
*/
int main()int a b c= ;printf( input a and b:\\n );scanf( %d %d &a &b);c = sum(a b);printf( c = %d\\n c);return ;
生成动态库
复制代码 代码如下:
gcc c fPIC mysum c mysum h //生成mysum o文件
gcc shared fPIC o libmysum so mysum o //生成动态库文件 默认的命名方式为lib+名称 so
动态库静态加载
复制代码 代码如下:
gcc o main main c L lmysum Wall
或
gcc o main main c lmysum Wall
执行 /main时会报告错误 提示无法加载libmysum so共享库
处理方法有三
方法一
将动态库拷贝到 /lib或 /usr/lib中去
如 sudo cp libmysum so /lib
方法二
改变环境变量
LD_LIBRARY_PATH=$PWD export LD_LIBRARY_PATH
方法三
在编译时指定共享库的路径
cha138/Article/program/qrs/201404/30410相关参考