关于linux下的库文件
先说说库文件是怎么来的吧。
以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下的库文件相关推荐
- linux的库文件路径,Linux下的库文件搜索路径
对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行&quo ...
- linux下的库文件
一.lib类型: 与windows下静态库(.lib)和动态库(.dll)一样,linux同样存在静态库(static library 文件后缀为.a)和共享库(shared library 文件 ...
- Linux下的库文件搜索路径
对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执行&quo ...
- linux下的 lib文件的学习思考
说到这个LIB文件,先从一个小故障说起. 某日开发说,一台测试用虚机可以PING通SSH不能连了.运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢? 测试下,不管 ...
- linux下的lib文件
zz:http://ooplab.org/post/421.html 作者:曹江华 赛迪技术天地 随着Linux性能的不断提升和逐渐普及,会有越来越多的人在Linux下从事应用软件的开发.这里笔 ...
- linux下静态库、动态库总结
一.基本概念 1.1.什么是库 在 windows 平台和 linux 平台下都大量存在着库. 本质上来说库是一种可执行的二进制代码(但不可以独立执行),可以被操作系统载入内存执行. 由 ...
- linux查看lib文件,linux下的 lib文件的学习思考
说到这个LIB文件,先从一个小故障说起. 某日开发说,一台测试用虚机可以PING通SSH不能连了.运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢? 测试下,不管 ...
- Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)
Linux下的ELF文件.链接.加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可以被加载到内存并执行.链接可以执行与编译时,也就是在源代码被翻译成机器代码时:也可以执行 ...
- Linux下开源库的使用(共享库文件头文件配置全局搜索)(WSL)
关键词 g++; vscode; c++; pkg-config; include; lib; linux; .pc; tasks.json; launch.json; WSL 前言 需求及手动解决方 ...
最新文章
- (续)我对09毕业生说两句
- RabbitMQ脑裂问题解决方案调查
- Spring+Quartz 集群
- neo4j springboot 日志_Springboot2.3集成neo4j的过程和踩坑记
- careercup-高等难度 18.6
- mysql 单例模式_php基于单例模式封装mysql类完整实例
- 动态规划实战3-leetcode 55.Jump Game
- 设计模式微课版来啦——《设计模式(第2版)》
- 随机抽奖程序_Excel VBA(7) – 自制九宫格抽奖器
- 【智慧楼宇项目】nodemcu(lua)控制HLW8032电计量模块
- 机器人语音---走进优必选
- 我要多开梦幻手游PC端(梦幻手游PC端多开的简单分析及实现办法)(二)
- 白色背景,白色文字怎么显示清晰?
- 【转载】:马家寨:揭开陈圆圆携吴三桂后裔隐藏与繁衍真相
- 已知一/27网络中有一个地址是167.199.170.82,问这个网络的网络掩码、网络前缀长度和网络后缀长度是多少,求这个地址块的地址数、首地址以及末地址是多少
- unity隐藏鼠标光标的2种方法
- svn提示没有设置冲突_SVN出现叹号文件冲突解决办法
- 【MapReduce】MapReduce读写MySQL数据
- fn+f12查看接口
- ppt提示内存或系统资源不足_Mac 电脑提示内存不足,一键轻松搞定