熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 嵌入式開發 >> 正文

linux生成(加載)動態庫靜態庫和加載示例方法

2022-06-13   來源: 嵌入式開發 

  動態庫的生成

  /*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


From:http://tw.wingwit.com/Article/program/qrs/201404/30410.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.