linux中la是什么文件

发布时间 - 2022-05-09 00:00:00    点击率:
在linux中,la是使用libtool编译出的库文件,是记录同名动态库和静态库相关信息的文本文件;该文件是通过libtool保存在平台之间的唯一文件。libtool是一个通用库支持脚本,只与后缀名为lo、la的libtool文件打交道。

本教程操作环境:linux7.3系统、Dell G3电脑。

linux中la是什么文件

la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息

libtool的工作原理

libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中;使用libtool的标准方法,可以在不同平台上创建并调用动态库。可以认为libtool是gcc的一个抽象,其包装了gcc(或者其他的编译器),用户无需知道细节,只要告诉libtool需要编译哪些库即可,libtool将处理库的依赖等细节。libtool只与后缀名为lo、la为的libtool文件打交道。

扩展知识:

linux下的so、o、lo、a、la文件有什么区别?

  • o: 编译的目标文件

  • a: 静态库,其实就是把若干o文件打了个包

  • so: 动态链接库(共享库)

  • lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息

libtool主要的一个作用是在编译大型软件的过程中解决了库的依赖问题;将繁重的库依赖关系的维护工作承担下来,从而释放了程序员的人力资源。libtool提供统一的接口,隐藏了不同平台间库的名称的差异等细节,生成一个抽象的后缀名为la高层库libxx.la(其实是个文本文件),并将该库对其它库的依赖关系,都写在该la的文件中。该文件中的dependency_libs记录该库依赖的所有库(其中有些是以.la文件的形式加入的);libdir则指出了库的安装位置;library_names记录了共享库的名字;old_library记录了静态库的名字。

当编译过程到link阶段的时候,如果有下面的命令:

$libtool --mode=link gcc -o myprog -rpath /usr/lib –L/usr/lib –la

libtool会到/usr/lib路径下去寻找liba.la,然后从中读取实际的共享库的名字(library_names中记录了该名字,比如liba.so)和路径(lib_dir中记录了,比如libdir=’/usr/lib’),返回诸如/usr/lib/liba.so的参数给激发出的gcc命令行。

如果liba.so依赖于库/usr/lib/libb.so,则在liba.la中将会有dependency_libs=’-L/usr/lib -lb’或者dependency_libs=’/usr/lib/libb.la’的行,如果是前者,其将直接把“-L/usr/lib –lb”当作参数传给gcc命令行;如果是后者,libtool将从/usr/lib/libb.la中读取实际的libb.so的库名称和路径,然后组合成参数“/usr/lib/libb.so”传递给gcc命令行。

相关推荐:《Linux视频教程》


# linux  # 接口  # 是一个  # 是个  # 命令行  # 文本文件  # 相关信息  # 该文件  # 是在  # 会有  # 其他的  # 则在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何实现模型的全局作用域?(Global Scope示例)  网站建设保证美观性,需要考虑的几点问题!  LinuxCD持续部署教程_自动发布与回滚机制  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何挑选最适合建站的高性能VPS主机?  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何在阿里云服务器自主搭建网站?  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  如何打造高效商业网站?建站目的决定转化率  香港网站服务器数量如何影响SEO优化效果?  公司网站制作价格怎么算,公司办个官网需要多少钱?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  JavaScript中的标签模板是什么_它如何扩展字符串功能  香港服务器WordPress建站指南:SEO优化与高效部署策略  JS经典正则表达式笔试题汇总  如何快速查询网址的建站时间与历史轨迹?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  海南网站制作公司有哪些,海口网是哪家的?  南京网站制作费用,南京远驱官方网站?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  高防服务器:AI智能防御DDoS攻击与数据安全保障  Windows Hello人脸识别突然无法使用  iOS UIView常见属性方法小结  php json中文编码为null的解决办法  canvas 画布在主流浏览器中的尺寸限制详细介绍  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  如何用美橙互联一键搭建多站合一网站?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  如何在IIS7中新建站点?详细步骤解析  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel如何为API生成Swagger或OpenAPI文档  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何快速上传自定义模板至建站之星?  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何快速生成橙子建站落地页链接?  如何快速搭建高效简练网站?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  微信小程序 闭包写法详细介绍