主頁(yè) > 知識(shí)庫(kù) > linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法

linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法

熱門(mén)標(biāo)簽:河南信譽(yù)好的不封卡電話外呼系統(tǒng) 揭陽(yáng)智能電話機(jī)器人推薦 如果做線上地圖標(biāo)注 打電話機(jī)器人接我是他的秘書(shū) 地圖標(biāo)注員都是年輕人 華鋒e路航港口地圖標(biāo)注 百度地圖標(biāo)注錯(cuò)了有責(zé)任嗎 江蘇云電銷(xiāo)機(jī)器人公司 客服外呼系統(tǒng)怎么樣

動(dòng)態(tài)庫(kù)的生成:

1、/*mysum.c*/

復(fù)制代碼 代碼如下:

#include stdio.h>
#include "src.h"


int sum(int a,int b)
{
return (a+b);
}


 

2、/*mysum.h*/

復(fù)制代碼 代碼如下:

#ifndef __SRC_H__
#define __SRC_H__

int sum(int a,int b);

#endif


 

3、/*main.c*/

復(fù)制代碼 代碼如下:

#include stdio.h>

extern int sum(int a,int b);

/*

#include stdio.h>

#include "mysum.h"

*/

int main()
{
int a,b,c=0;
printf("input a and b:\n");
scanf("%d %d",a,b);
c = sum(a,b);
printf("c = %d\n",c);
return 0;
}


 

4、生成動(dòng)態(tài)庫(kù)

復(fù)制代碼 代碼如下:

gcc -c -fPIC mysum.c mysum.h //生成mysum.o文件

gcc -shared -fPIC -o libmysum.so mysum.o //生成動(dòng)態(tài)庫(kù)文件,默認(rèn)的命名方式為lib+名稱(chēng).so


 

5、動(dòng)態(tài)庫(kù)靜態(tài)加載

復(fù)制代碼 代碼如下:

gcc -o main main.c -L. -lmysum -Wall

gcc -o main main.c -lmysum -Wall

6、執(zhí)行 ./main時(shí)會(huì)報(bào)告錯(cuò)誤,提示無(wú)法加載libmysum.so共享庫(kù)。

7、處理方法有三:

方法一:

將動(dòng)態(tài)庫(kù)拷貝到 /lib或 /usr/lib中去

如:sudo cp libmysum.so /lib

方法二:

改變環(huán)境變量:

LD_LIBRARY_PATH=$PWD export LD_LIBRARY_PATH

方法三:

在編譯時(shí)指定共享庫(kù)的路徑:

gcc -o main1 -Wl,-rpath,.-L. -louyang main.o

您可能感興趣的文章:
  • 詳解Linux動(dòng)態(tài)庫(kù)生成與使用指南

標(biāo)簽:許昌 邵陽(yáng) 淘寶邀評(píng) 馬鞍山 金昌 巴彥淖爾 婁底 赤峰

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法》,本文關(guān)鍵詞  linux,生成,加載,動(dòng)態(tài),庫(kù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章