ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux下的静态库和动态库的建立

2020-03-22 14:03:19  阅读:132  来源: 互联网

标签:testLesser 文件 命令 静态 libzk Linux 动态 目录


       当我们的程序中有经常使用的模块,而且这种模块在其他程序中也会用到,这时按照软件重用的思想,我们应该将他们生成库,使得以后编程可以减少开发代码量。以下整理了Linux下静态库和动态库的运用和体会。

(一)没有库文件的处理

以一个简单的程序——找出两个整数中的较小者,为例。

测试文件代码

 

       可以运用makefile的优点——“自己主动化编译”。一旦写好,仅仅需要一个make命令,整个工程全然自己主动编译,极大提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的指令工具。且如果其中的文件文件要更改,可以使用同一个命令make即可重新编译生成新的执行文件,make会自动判断哪些文件需要重新编译(根据.o文件和.c文件生成时间的比较)。

 

 

 

 

(二)静态库的建立

 

 

 静态库的建立简单来说是将.o文件放在一起,防止源码泄露,可大幅度提高代码的安全性。因可执行文件已完全链接好,所以不依赖系统环境,其代码可复制或移动到任何文件夹或目录下运行。但是因此其可执行文件占用空间大。

1.利用命令 “ar  rcs libzk.a lesser.o"生成静态库。

2.建立一个lib目录,此处建立的是libzk目录。

3.利用命令 ”cp testLesser.c imin.h libzk.a libzk/" 将我们的测试文件和头文件以及生成的静态库复制到libzk目录下。

4.进入libzk目录,利用命令 “gcc -o testLesser testLesser.c -stastic -L -lzk"使用静态库。创建库文件的接口文件头文件。

(三)动态库的建立

 

 

 动态库与静态库有明显的不同,它依赖系统环境,可执行文件不易运行,但其占用空间远远小于静态库。

1.利用命令 "gcc -shared -fPIC -o libzk,so"生成动态库。

 2.建立一个lib目录,此处建立的是libSo目录。

 3.同上。

 4.进入libSo目录,利用命令 "gcc -o testLesser testLesser.c -L. -lzk"生成可执行文件。

 

标签:testLesser,文件,命令,静态,libzk,Linux,动态,目录
来源: https://www.cnblogs.com/Coco-99/p/12543906.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有