日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux 下共享库创建及使用

發布時間:2025/3/20 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 下共享库创建及使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.創建共享庫

[xpan@localhost 2.5.3]$ ls
libhello.c? libhello.h? usehello.c
[xpan@localhost 2.5.3]$ gcc -fPIC -Wall -g -c libhello.c

參數說明:

-fPIC 參數生成與位置無關的代碼;

-W 或 -Wall 去除所有警告;

-g? 指加上調試信息;

-c 是編譯之意;


[xpan@localhost 2.5.3]$ ls libhello.o
libhello.o
[xpan@localhost 2.5.3]$ gcc -shared -o libhello.so.1.0 libhello.o
[xpan@localhost 2.5.3]$ ls
libhello.c? libhello.h? libhello.o? libhello.so.1.0? usehello.c
[xpan@localhost 2.5.3]$ ln -sf libhello.so.1.0 libhello.so
[xpan@localhost 2.5.3]$ ls
libhello.c? libhello.h? libhello.o? libhello.so? libhello.so.1.0? usehello.c
[xpan@localhost 2.5.3]$ ls libhello.so -l
lrwxrwxrwx 1 xpan xpan 15 6月? 11 09:36 libhello.so -> libhello.so.1.0
[xpan@localhost 2.5.3]$

2.使用共享庫

[xpan@localhost 2.5.3]$ ls
libhello.c? libhello.h? libhello.o? libhello.so? libhello.so.1.0? usehello.c
[xpan@localhost 2.5.3]$ cat libhello.h
#ifndef _libhello_H_
#define _libhello_H_
void print_hello(void);
#endif /*_libhello_H_*/
[xpan@localhost 2.5.3]$ cat usehello.c
#include "libhello.h"
/*hello*/
int main(void)
{
? print_hello();
? return 0;
}
[xpan@localhost 2.5.3]$ gcc -Wall -g -c usehello.c -o usehello.o???? //編譯
[xpan@localhost 2.5.3]$ ls
libhello.c? libhello.o?? libhello.so.1.0? usehello.o
libhello.h? libhello.so? usehello.c
[xpan@localhost 2.5.3]$ gcc -g -o usehello_dynamic usehello.o -L ./ -lhello    //連接引用
[xpan@localhost 2.5.3]$ ls
libhello.c? libhello.o?? libhello.so.1.0? usehello_dynamic
libhello.h? libhello.so? usehello.c?????? usehello.o
[xpan@localhost 2.5.3]$ ldd usehello_dynamic
?? ?linux-gate.so.1 =>? (0xb7726000)
?? ?libhello.so => not found            
?? ?libc.so.6 => /lib/libc.so.6 (0x4c645000)
?? ?/lib/ld-linux.so.2 (0x4c622000)
[xpan@localhost 2.5.3]$ LD_LIBRARY_PATH=$(pwd) ./usehello_dynamic
hello world ,this is library

指定庫的搜索路徑

1. LD_LIBRARY_PATH=$(pwd)

2. 拷貝此庫"libhello.so"到/usr/lib 或 /lib 文件夾中,或者在此兩個文件夾任意一個中創建一個到該庫的快捷方式 ,并命名為libname.so;

3. 在"/etc/ld.so.conf"中,每一行添加一個路經,完成以上設置后再運行ldconfig命令更新信息,加入的目錄下的所有庫文件都可見。當靜態庫和動態庫同名時, gcc命令將優先使用動態庫。



?

?

?

?

轉載于:https://www.cnblogs.com/panxihua/archive/2012/06/11/2544280.html

總結

以上是生活随笔為你收集整理的linux 下共享库创建及使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。