先说说库文件是怎么来的吧。

以C为例,我们写一个程序,一般都不会把所有的函数都写在一个文件里面,通常都是划分模块,然后一个模块若干个文件,然后在main文件里面调用这些模块。我这里用一个magic.c文件代替实际程序中的所有的文件,你就当这个magic.c文件非常神奇,你调用里面的magic()函数后,它会自动按你的想法把剩下的工作都完成。下面是两个文件:

mian.c

int main(){magic();
}

magic.c:

#include <stdio.h>
void magic(){printf("This is a magic function\n");
}

main.c文件里面没有包括任何头文件,因为我们的编译是手动按步骤的,实际编码不推荐这样做,这里可以更加清楚的知道头文件的作用。

一般从C源文件到可执行代码要经过以下4个步骤:预编译(preprocess  gcc -E,生成.i文件),编译(compile gcc -S,生成.s文件),汇编(assemble  gcc -c,生成.o文件),链接(link  生成可执行文件)。这里只讨论最后两个步骤,汇编和链接。

汇编后的结果是每个源文件都有了对应的二进制代码;链接是把所有的二进制代码打包成一个文件,最后得到可执行文件。

使用这个命令汇编main.c:gcc -Wall -c main.c

关于linux下的库文件相关推荐

  1. linux的库文件路径,Linux下的库文件搜索路径

    对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行&quo ...

  2. linux下的库文件

    一.lib类型:   与windows下静态库(.lib)和动态库(.dll)一样,linux同样存在静态库(static library 文件后缀为.a)和共享库(shared library 文件 ...

  3. Linux下的库文件搜索路径

    对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行&quo ...

  4. linux下的 lib文件的学习思考

    说到这个LIB文件,先从一个小故障说起. 某日开发说,一台测试用虚机可以PING通SSH不能连了.运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢? 测试下,不管 ...

  5. linux下的lib文件

     zz:http://ooplab.org/post/421.html 作者:曹江华 赛迪技术天地 随着Linux性能的不断提升和逐渐普及,会有越来越多的人在Linux下从事应用软件的开发.这里笔 ...

  6. linux下静态库、动态库总结

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

  7. linux查看lib文件,linux下的 lib文件的学习思考

    说到这个LIB文件,先从一个小故障说起. 某日开发说,一台测试用虚机可以PING通SSH不能连了.运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢? 测试下,不管 ...

  8. Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)

    Linux下的ELF文件.链接.加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可以被加载到内存并执行.链接可以执行与编译时,也就是在源代码被翻译成机器代码时:也可以执行 ...

  9. Linux下开源库的使用(共享库文件头文件配置全局搜索)(WSL)

    关键词 g++; vscode; c++; pkg-config; include; lib; linux; .pc; tasks.json; launch.json; WSL 前言 需求及手动解决方 ...

最新文章

  1. (续)我对09毕业生说两句
  2. RabbitMQ脑裂问题解决方案调查
  3. Spring+Quartz 集群
  4. neo4j springboot 日志_Springboot2.3集成neo4j的过程和踩坑记
  5. careercup-高等难度 18.6
  6. mysql 单例模式_php基于单例模式封装mysql类完整实例
  7. 动态规划实战3-leetcode 55.Jump Game
  8. 设计模式微课版来啦——《设计模式(第2版)》
  9. 随机抽奖程序_Excel VBA(7) – 自制九宫格抽奖器
  10. 【智慧楼宇项目】nodemcu(lua)控制HLW8032电计量模块
  11. 机器人语音---走进优必选
  12. 我要多开梦幻手游PC端(梦幻手游PC端多开的简单分析及实现办法)(二)
  13. 白色背景,白色文字怎么显示清晰?
  14. 【转载】:马家寨:揭开陈圆圆携吴三桂后裔隐藏与繁衍真相
  15. 已知一/27网络中有一个地址是167.199.170.82,问这个网络的网络掩码、网络前缀长度和网络后缀长度是多少,求这个地址块的地址数、首地址以及末地址是多少
  16. unity隐藏鼠标光标的2种方法
  17. svn提示没有设置冲突_SVN出现叹号文件冲突解决办法
  18. 【MapReduce】MapReduce读写MySQL数据
  19. fn+f12查看接口
  20. ppt提示内存或系统资源不足_Mac 电脑提示内存不足,一键轻松搞定

热门文章

  1. 战争雷霆warthunder游戏内自定义文本mod的制作方法
  2. Data Mining Pipeline(数据挖掘实践指南--特征发现,处理与评估)
  3. 车用技术总线 | 从应用角度了解下LIN总线
  4. 优秀网络安全工程师的8个必备素质
  5. 杭州富阳科目三:考试笔记
  6. おとまりせっくす中文在线
  7. 交换机和路由器区别(一看就懂)
  8. mysql sql注入漏洞修复_从Java角度修复SQL注入漏洞
  9. 视觉识别:CS231n卷积神经网络
  10. selenium-对话框处理