国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

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

2020-07-27 19:21:29
字體:
來源:轉載
供稿:網友

動態庫的生成:

1、/*mysum.c*/

復制代碼 代碼如下:

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


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


 

2、/*mysum.h*/

復制代碼 代碼如下:

#ifndef __SRC_H__
#define __SRC_H__

int sum(int a,int b);

#endif


 

3、/*main.c*/

復制代碼 代碼如下:

#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、生成動態庫

復制代碼 代碼如下:

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

gcc -shared -fPIC -o libmysum.so mysum.o //生成動態庫文件,默認的命名方式為lib+名稱.so


 

5、動態庫靜態加載

復制代碼 代碼如下:

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

gcc -o main main.c -lmysum -Wall

6、執行 ./main時會報告錯誤,提示無法加載libmysum.so共享庫。

7、處理方法有三:

方法一:

將動態庫拷貝到 /lib或 /usr/lib中去

如:sudo cp libmysum.so /lib

方法二:

改變環境變量:

LD_LIBRARY_PATH=$PWD export LD_LIBRARY_PATH

方法三:

在編譯時指定共享庫的路徑:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 姚安县| 涞水县| 定远县| 铅山县| 武宁县| 重庆市| 北票市| 广德县| 望都县| 盘山县| 昭平县| 揭西县| 汉川市| 桃园市| 宜州市| 溧水县| 萝北县| 探索| 汝阳县| 南城县| 中江县| 长兴县| 平果县| 高阳县| 新干县| 横山县| 项城市| 富民县| 平凉市| 张北县| 疏附县| 遂平县| 泰和县| 塔城市| 周口市| 富宁县| 南宫市| 桦甸市| 阿城市| 宁都县| 怀仁县|