知识大全 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

相关参考