浅谈Linux C语言动态库及静态库
作者:jingxian 发布时间:2023-08-06 07:21:54
标签:linux,静态库,动态库
假设在math目录下已编辑好add.c sub.c div.c mul.c func_point.c文件,func_point.c为包含main()的源文件!
动态库的制作:
方法一:
gcc -c -fPIC add.c sub.c div.c mul.c //-c表示生成.o目标文件,-f后加一些编译选项,PIC表示与位置无关
gcc -shared -o libmymath.so add.o sub.o mul.o div.o//创建共享库mymath,添加add.o,sub.o,mul.o,div.o目标文件
sudo mv libmymath.so /usr/lib
gcc func_point.c -lmymath//-l后面加动态链接库名字
方法二:
gcc -c -fPIC add.c sub.c div.c mul.c //-c:生成.o目标文件,-f后加一些编译选项,PIC表示与位置无关
gcc -shared -o libmymath.so add.o sub.o mul.o div.o//创建共享库mymath,添加add.o,sub.o mul.o div.o目标文件
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.//注意此操作后把当前目录加入环境变量中
gcc func_point.c -L. -lmymath//-l后面加动态链接库名字
方法三:
gcc -c -fPIC add.c sub.c div.c mul.c //-c:生成.o目标文件,-f后加一些编译选项,PIC表示与位置无关
gcc -shared -o libmymath.so add.o sub.o mul.o div.o//创建共享库mymath,添加add.o,sub.o mul.o div.o目标文件
sudo vi /etc/ld.so.conf//把你的动态库路径加入此文件中
sudo ldconfig
gcc func_point.c -L. -lmymath//-l后面加动态链接库名字
ldd 显示可执行程序所需的共享库。
定义好框架,不断增加动态库!!
静态库制作:
ar -crs libmymath.a add.o sub.o div.o mul.o/*创建静态库mymath,添加add.o,sub.o,mul.o,div.o,-c:创建归档文件 -r:插入 -s:若归档文件中包含了对象模式,可利用此参数建立备存文件的符号表 ar -crs libmymath.a *.o */
gcc func_point.c -L. -lmymath//-L在哪个目录下找库 -l找哪个库,-lm可以链接到标准算数库,-lpthread可以连接到Linux标准线程库
ar -d libmymath.a add.o//删除一个
ar -r libmymath.a add.o//增加一个
静态库在程序链接时用到,链接器把程序所需的代码从静态库中拷贝到可执行程序中,可执行程序会增大;动态库在程序加载时用到,程序在加载时,会先检查需要哪些动态库连接,然后从内存中找到这些动态库的地址,最后加载动态库运行程序。


猜你喜欢
- 有很多发布商写信来问怎样才算鼓励点击,还有一些发布商在接到我们的违反政策警告的时候甚至并不认为自己在鼓励点击,现在我们就来说说“鼓励点击”。
- 一、前言对于不习惯英文的人可能想将系统由英文转成中文;而对于考虑客户端如果没正确配置,中文目录可能显示为乱码的人则可能宁愿将系统由中文转成英
- 到底谁是真正的“开心网”?这个问题现在只能交由法律来最终裁定。昨日上午,北京市二中院开庭审理北京开心人信息技术有限公司(kaixin001.
- 一.前言Docker for Windows 不同于 Docker Toolbox。Docker for Windows 对系统的要求至少为
- 有时需要远程控制ubuntu系统的电脑,Teamviewer在linux下也可以进行安装,大致看了下向日葵在linux下配置好像比较麻烦,而
- 本文分步介绍如何使用 Internet 信息服务 (IIS) 5.0 授予对 Web 内容的 Web 服务器权限。您可以对服务器上的特定网站
- 本文适用于学习服务器知识所讲述的如何在virtualbox上安装centos。准备已经安装好的virtualbox虚拟机已经下载好的cent
- 10月23日消息,网络电话服务Skype第三季度营收增长了27%,新增逾4000万用户。据国外媒体报道称,Skpye母公司eBay昨天发布了
- 几年前站长做网站的时候只需要考虑Woindows和IE 5.0,网页的分辨率大多是800*600和1024*768,所以对于网站设计来说相对
- nmap工具检测开放端口Nmap是Network Mapper的简称。Nmap是一款免费、开源的网络发现和侦察工具。Nmap可以扫描网络中的
- 服务器群集功能最早是为 Microsoft Windows NT® Server 4.0 操作系统设计的,这一功能在 Mic
- 很多的站长都会在一些大的网站上发表一些软文来提高自已网站的流量,但有很多的软文都被K了,或是效果不好.我曾在网易里发过一帖软文,每天都有上百
- 如果你想要为CentOS 7中的某个网络接口设置静态IP地址,有几种不同的方法,这取决于你是否想要使用网络管理器。网络管理器(Network
- 11月6日消息,据中国法院网报道,由于盗播热映电影,爆米花视频网的主办公司普信通(北京)科技有限公经法院主持调解同意赔偿还款,但还款事宜此后
- 看了好多的朋友写自己的经历,俺也忍不住写一些!俺是一个失败的站长鸟! 接触网络是在2000年,接触之后的2个月之内就
- Textpattern 往往被视为最灵活的开源CMS之一,其轻巧的身形和简洁的界面,深受开发者和设计师的喜欢。一起来认识下Textpatte
- 打开http.conf文件,搜索shtml把最前两行的#号去掉,即成如下如是要想整个服务器配置shtml的话再搜索Options Index
- 打开dede/inc/inc_batchup.php找到"//删除数据库的内容"前面加//删除缩略图 if($arcRo
- 你是否厌烦了在电脑上一张张的点击翻看照片?你有没有想过让自己的照片舞动起来?一般制作一个具有FLASH动画效果的电子相册,网友需要使用一个专
- 一、关键词位置、密度、处理1.URL中出现关键词(英文)2.网页标题中出现关键词(1-3个)3.关键词标签中出现关键词(1-3个)4.描述标