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 下共享库创建及使用相关推荐
- Linux下共享库的查找顺序
http://www.cnblogs.com/lovevivi/archive/2013/01/15/2861211.html 在接手一个很古老的程序时,发现其所使用的动态库都实在是太陈旧了,正式运行 ...
- linux下共享库的制作及常见的问题
将自己写的链表生成共享库 1.编译 2.设置库名: 库的名称格式:lib + XXX + 版本号.so (库的名称为XXX) -shared 生成共享文件库 -fpic 动态链接 3. ...
- Linux下动态库的创建与更新
Linux下动态库(libname.x.y.z)的创建与更新 由于主程序和它依赖的共享库是由不同的开发者开发的.共享库的开发者会不停地更新共享库的版本,以修正bug,增加功能或改进性能.版本多了之后, ...
- 在linux上实现DllMain + 共享库创建方法
DllMain可以在dll加载到进程.线程时调用,可以做些初始化.清理的工作 但在linux上没有专门的函数,可以使用gcc扩张属性__attribute__((constructor)) and _ ...
- 《LINUX下动态链接库的创建与应用》
大家都知道,在windows系统中有很多的动态链接库(以.dll为后缀的文档,dll即dynamic link library).这种动态链接库,和静态函数库不同,他里面的函数并不是执行程式本身的一部 ...
- linux 动态库建立,浅析linux下静态库和动态库的建立和使用
在粤嵌学了很多知识,我们把常用的公用函数放在一起做成一个函数库,可以供其他程序共同使用,函数库本质上说,是一个可执行代码的二进制形式,可被操作系统载入内存执行.linux下的库分为两种:静态库,后缀名 ...
- linux下多线程的创建与等待详解 【转载】
linux下多线程的创建与等待详解 http://blog.chinaunix.net/uid-23842323-id-2656572.html 所有线程都有一个线程号,也就是Thread ID.其类 ...
- Linux下动态库和静态库制作与调用
Linux下动态库和静态库制作与调用 1.动态库和静态库简介 静态库是指在应用中,有一些公共代码需要反复使用,就把这些代码编译为"库"文件:在链接步骤中,连接器将从库文件取得所 ...
- nux下共享库(SO)有关的几个环境变量 zz
Linux支持共享库已经有悠久的历史了,不再是什么新概念了.大家都知道如何编译.连接以及动态加载(dlopen/dlsym/dlclose) 共享库.但是,可能很多人,甚至包括一些高手,对共享库相关的 ...
最新文章
- 1052 Linked List Sorting
- JButton 圆角_ProE、Creo在玩具轿车设计中的一个案例应用解析|轿车|玩具|圆角
- 阐述Linux操作系统之rpm五种基本操作
- .Net Core 部署到Ubuntu 16.04 中的步骤
- 双列集合Map的实现类
- LeetCode 690. 员工的重要性(图的DFSBFS)
- Oracle 游标使用大全
- 上海芯导电子科技股份有限公司IPO过会
- 激活anaconda的环境出现source: no such file or directory: activate
- Three20 NetWork
- python字典用法大全
- CCF NOI1076 进制转换
- Fourier分析基础(二)——由级数导出连续Fourier变换
- HarmonyOS 十分钟快速入门教程|和车神哥一起学
- 使用plf更新Mandriva系统
- Calling CRDA to update world regulatory domain
- 乐优商城之品牌新增fastDFS(九)
- 联想G40-30进入PE鼠标键盘失灵解决方法
- jQuery表格导出Excel文件以及网页内容导出Word文档
- mysql中vlookup函数_excel精确匹配vlookup用法(数据库属性匹配)
热门文章
- qt 制作记事本_23.QT记事本
- edittext禁止换行符但能自动换行简书_使用n-gram创建自动完成系统
- springboot 拦截器 日志_跟武哥一起学习Spring Boot,一份全面详细的学习教程
- curl php 模拟来源_PHP CURL伪造IP和来源
- oracle tranc,ORACLE TRUNC()函数
- java comparable接口_Java面试题之Java集合篇三
- linux怎么退出vim编辑模式_Linux中的vim编辑器使用
- 【MatConvnet速成】MatConvnet图像分类从模型自定义到测试
- 中国电力设备行业运行状况与产量趋势研究报告2022版
- 全球及中国生物质能利用产业现状调研及十四五建设布局规划报告2021-2027年