Linux下库的实现和比较

首先,先创建一个文件夹,我创建的文件夹是shq,以下文件均在此文件夹下。库名为HCY。因为没有好的代码,所以我使用了老师上课的代码。

代码如下:

hcy.h

add.c

div.c

mod.c

mul.c

sub.c

testhcy.c

makefie

一 没有库的实现

输入命令:make

可执行文件的大小是8696字节

执行可执行文件

二 使用静态库文件,生成静态库。库文件一般以lib为前缀,紧接着是库的名称,扩展名为.a。

可执行文件的大小是958552字节

执行可执行文件

三、使用动态库文件:生成动态库文件。库文件一般以lib为前缀,紧接着是库的名称,扩展名为.so

可执行文件的大小是8544字节

通过以上数据对比可知,没有库文件的情况下可执行文件的大小为8696,静态库下是958552 ,动态库下是8544.可见静态库的可执行文件较大。

原文地址:https://www.cnblogs.com/hcy544015/p/12539816.html

时间: 2024-10-08 08:39:50

Linux下库的实现和比较的相关文章

linux 下库的深入调研

linux操作系统中,linux库文件路径还是比较常用的,于是我研究了一下linux库文件路径,在这里拿出来和大家分享一下,希望对大家有用. 库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的.一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用.对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中.设置库文件的搜索路径有下列两种方式

linux下库文件的编程

编程到了一定的时候,总喜欢追求新的东西.将代码尽量模块化就是我的追求之一,原来只是满足于将代码从单文件中分离,通过头文件和实现文件实现模块化,后来发现最好的方法是打包成库文件,使用更加方便.尽管在linux和windows下都有大量的库文件,由于二者的工具不同,加上笔者主要是在linux下编程和教学,因此本文主要介绍Linux下的库文件的制作. 库文件在linux中主要有两种:静态库和动态库(共享库),二者的不同主要有: 1.载入时机不同:静态库是在编译时进行载入到代码中:共享库在运行时载入到代

Linux静态库和动态库学习总结

一.废话 之前由于工作需要,要封装一个Linux加密解密转换的动态库,这个之前只做过Windows下面的,Linux下面还真没有做过,之后做了整一个晚上才算做好,不过其中也学到了不少东西,包括Linux下的动态库和静态库,MakeFile等等.之前就已经写了一个练习,之后怕又忘了,总结一下备忘,以后也好查. 很大部分内容都是收集的一些东西还有自己学习的体会,有什么错误或者问题请直接提出. 二.关于库的问题 1.库的原则 现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始.尽量不

Linux——C库

1.库的概念 库是一个二进制文件,包含的代码可被程序调用 标准C库.数学库.线程库-- 库有源码,可下载后编译:也可以直接安装二进制包 /lib /usr/lib 2.库的知识 库是事先编译好的,可以复用的代码. 在OS上运行的程序基本上都要使用库.使用库可以提高开发效率. Windows和Linux下库文件的格式不兼容 Linux下包含静态库和共享库 3.静态库特点 编译(链接)时把静态库中相关代码复制到可执行文件中 程序中已包含代码,运行时不再需要静态库 程序运行时无需加载库,运行速度更快

Linux下Gcc生成和使用静态库和动态库详解

参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主要是编译器.汇编器和连接器的不同),因此二者库的二进制是不兼容的. 本文仅限于介绍linux下的库. 1.2库的种类 linux下的库有两种:静态库和共享库(动态库). 二者的不同

linux下的静态连接库和动态链接库

对linux的静态连接库和动态链接库分不清楚,在看了一篇博文后,现在想做个自己的总结,以加深印象: 1.库的基本概念: 库是可执行代码的二进制形式,其可以被调入操作系统调入内存进行执行. 在window和linux系统,都存在各自的库,但是两种系统的库并不能兼容,因为它们的编译器,连接器,汇编器都是不相同的. 在windows下,静态连接库的后缀是.lib;动态链接库的后缀是.dll 在linux系统下,静态链接库的后缀是.a;动态链接库的后缀是.so 2.静态连接库和动态链接库的命名: 静态连

Linux下 静态链接库 和 动态链接库

先来说说C/C++编译过程 编译: 检查语句符号定义,将C/C++代码翻译生成中间语言. 链接: 将中间代码整合,生成可执行的二进制代码. 简单的说,库文件都是一种特殊的中间语言文件,静态库还是一种特殊格式的归档文件(打包的文件). 使用静态库: 1. 先编写库函数 1 #ifndef _PRINT_TEST_H_ 2 3 #define _PRINT_TEST_H_ 4 #ifdef __cplusplus 5 extern "C" 6 { 7 #endif 8 9 extern i

linux下编译qt5.6.0静态库——configure配置

 随笔 - 116  文章 - 4  评论 - 7 linux下编译qt5.6.0静态库--configure配置 linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberry选项: Android 选项: 生成makefile 遇到链接检查失败的情况 生成makefile后进行编译 编译时的错误 多重定义'QT_MODBUS()'和'QT_MODBU

【转】Linux下gcc生成和使用静态库和动态库详解

一.基本概念 1.1 什么是库 在Windows平台和Linux平台下都大量存在着库. 本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主要是编译器.汇编器和连接器的不同),因此二者的库的二进制是不兼容的. 本文仅限于介绍linux下的库. 1.2 库的种类 linux下的库有两种:静态库和共享库(动态库). 二者的不同点在于代码被载入的时刻不同. 静态库的代码在编译过程中已经被载入可执行程序,因此体积较大. 共享库的代码是在可