静态库和动态库的设计


宗旨:技术的学习是有限的,分享的精神是无限的。


Linux应用程序设计中需要的外部函数主要由函数库和系统调用来提供

Linux应用程序使用的主要函数库均存放于/lib, /usr/lib目录下,其中采用*.so.*方式命名的是动态函数库,而以*.a方式命令的是静态函数库(空间占据大)

Linux下进行链接时 默认是链接动态库

1、制作静态库

(1).gcc -c mylib.c -o mylib.o

(2).ar cqs libmylib.a mylib.o

(3).将制作好的libmylib.a复制到/usr/lib

(4).GCC在链接时,默认只会链接C函数库,而对于其他的函数库,则需要使用-l选项来显示地指明需要链接。例:gcc test.c –lmylib -o test

2、制作动态库

(1).gcc -c mylib.c -o mylib.o

(2).ar -shared -fPIC mylib.o -olibmylib.so

(3).将制作好的libmylib.so复制到/usr/lib

-fpic 使输出的对象模块是按照可重定位地址方式生成的。

-shared 指明产生动态链接库

(4).GCC在链接时,默认只会链接C函数库,而对于其他的函数库,则需要使用-l选项来显示地指明需要链接。例:gcc test.c –lmylib -o test

Linux静态库和动态库的设计相关推荐

  1. Linux下的静态库、动态库和动态加载库

    from: http://www.techug.com/linux-static-lib-dynamic-lib 库的存在极大的提高了C/C++程序的复用性,但是库对于初学者来说有些难以驾驭,本文从L ...

  2. [学习备忘录]Linux平台静态库、动态库的一些笔记

    先声明几点: 1.操作系统:linux(fc9).编译器:gcc-4.3.0.编辑器:包括但不限于emacs.vim.这些无理由也不应造成限制. 2.生成的可执行文件名称比较有规律,仅仅是为了演示的方 ...

  3. linux下终端urvst,Linux中的静态库与动态库

    #什么是库文件? 库文件是事先编译好的方法的合集.比如:我们提前写好一些数据公式的实现,将其打包成库文件,以后使用只需要库文件就可以,不需要重新编写. #Linux系统中: 1.静态库的扩展名为.a: ...

  4. 【C语言】标准库(头文件、静态库、动态库),windows与Linux平台下的常用C语言标准库

    一.Introduction 1.1 C语言标准库 1.2 历代C语言标准 1.3 主流C语言编译器 二.C语言标准库 2.1 常用标准头文件 2.2 常用标准静态库 三.windows平台 四.Li ...

  5. linux静态库与动态库整理

    简化版本 静态库: 制作: gcc -g -c ./*.c -I ../include/ ar crs libmod.a *.o 使用 gcc -g main.c -L ./ -lmod -I ../ ...

  6. Linux下静态库与动态库的引用关系深入分析

    很久就想写一篇关于动态库和静态库互相引用的一篇文章,但是总感觉准备不充分,而一直没有勇气下笔,最近在和同事的讨论中,似乎有了一些新的认识,想把这些记录下来,和大家进行一次分享,同时也是做一次记录. 这 ...

  7. 【Linux】静态库与动态库

    前言 对于C/C++的学习者,我们经常听到C/C++的标准库,我们也经常使用它们,但是我们在使用的时候经常只包含一下头文件,然后就使用了,我们从来没有认真的研究过C/C++的标准库,而且C/C++的头 ...

  8. 关于Linux静态库和动态库的分析

    From: http://hi.baidu.com/bdccutysj/blog/item/5bae7f0202abac7c3912bb15.html 1.什么是库 在windows平台和linux平 ...

  9. linux 中如何将文件粘贴到usr下的lib内,学会在Linux下GCC生成和使用静态库和动态库...

    一.基本概念1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主 ...

最新文章

  1. XShell 技巧分享
  2. python好学吗mooc中文网-Python语言程序设计
  3. Spring Boot 最佳实践
  4. Oracle 练习题P256
  5. Python小白的数学建模课-22.插值方法
  6. allure 测试报告本地打开_Pytest和Allure测试框架(二)
  7. .NET四种注释规范
  8. spring MVC中定义异常页面
  9. @enableautoconfiguration注解作用_如何让代码变“高级”-Spring组合注解提升代码维度(这么有趣)...
  10. 【机器学习案例】酒店用机器学习,预测哪些客人会放鸽子
  11. Flutter之_slot 插槽属性详解
  12. 第一章ASP程序设计概述
  13. wincc 服务器授权型号,WinCC V7.5 SP1软件安装及授权方法
  14. SD卡和SDHC卡操作
  15. 3第三课:区块链的激励机制
  16. mobel web 笔记
  17. 基于微信小程序云开(统计学生信息并导出excel)
  18. 7-3 电话聊天狂人 (25 分)
  19. r75800h参数 r7 5800h怎么样
  20. 新标准大学英语第二版视听说教程1-4

热门文章

  1. RDIFramework.NET(.NET快速开发框架) 答客户问(2014-02-23)
  2. 一个很好的机器学习普及网站
  3. 职场有影帝出没,屌丝们请当心!
  4. Android 为你的应用程序添加快捷方式【优先级高的快捷方式】
  5. as的使用技巧及注意点
  6. [Classic] 日文版《出师表》
  7. 操作系统面试题目详解
  8. 增量导出_[华为]一种实用的增量式深度CTR模型训练方法
  9. Docker 精通之入门
  10. vue router传参_新手使用vue-router传参时注意事项