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

o: 编译的目标文件

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

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

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

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

1 libtool的工作原理

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

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命令行。

当要生成的文件是诸如libmylib.la的时候,比如:

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

其依赖的库的搜索基本类似,只是在这个时候会根据相应的规则生成相应的共享�

相关文档:

先来了解一下文件属性,

在shell环境里输入:ls -l 可以查看当前目录文件。如:

drwxr-xr-x 2 nsf users 1024 12-10 17:37 下载文件备份

分别对应的是:

文件属性 连接数 文件拥有者 所属群组 文件大小 文件修改时间 文件名

这里r是可读,w可写,x 可执行,其中文件属性分为四段,---- --- --- 10个位置

例如:

d ......

在Linux内核里内存可以和硬盘空间通用的,当内存利用很少时,数据可以存到内存里,反之硬盘空间可以用来当内存用但是有个共同点数据总是现在内存里操作再写回到硬盘上的。由于这个原因,块存储设备被当成后备存储器。

Linux提供了两种操作的方法:

1 后台进程不停的检查系统内存周期性的写操作

2 当系统有太多的脏页需要 ......

一、本次内核编译新内核所涉及软件版本

“gcc –version”可查寻GCC版本------4.3.2 20081105(Red Hat 4.3.2-7)

“make –v”可查询 Gnu make版本-----3.81

“ld –V(v)可查询GNU ld版本-----2.18.50.0.9-7。f c10 20080822

“fdformat --version”命令 ......

ls -l|grep ^d    ----列出当前目录下的文件夹

ls -l|grep ^d|grep "tmp"  ----列出当前目录下明子含有"tmp"的文件夹

for dir in `ls -l ~/dxy/|grep ^d | awk '{print $9}'`  ---- awk '{print $9}' ,只print 文件夹的名字

do

echo "==== $dir"

cd ~/dxy;cd $dir/

t=`ls -l|grep ^d|grep " ......

当在Linux下频繁存取文件

后,物理内存会很快被用光,当程序

结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决

的办法。那么我来谈谈这个问题。

一、通常情况

先来说说free命令

引用

[root@server ~]# free -m

total used free shared buffers cac ......

linux中.la是什么文件,linux下的so、o、lo、a、la文件有什么区别?相关推荐

  1. linux中,<rc.d>,<rc.local>等带有rc的文件或目录 含义

    文章目录 在linux中经常会碰到bashrc,rc.d,rc.local等带有rc的文件或目录,一般都是启动时需要加载的. 英文原义:RC (runcom,run command) 中文释义:含有程 ...

  2. centos sudo不能运行_如何在 Linux 中配置 sudo 访问权限 | Linux 中国

    Linux 系统中 root 用户拥有 Linux 中全部控制权力.Linux 系统中 root 是拥有最高权力的用户,可以在系统中实施任意的行为.-- Magesh Maruthamuthu Lin ...

  3. linux中_Linux基础知识(Linux系统、Linux中的链表)

    Linux系统简介 Linux系统的结构及特点 Linux系统的结构图如下图所示: 从上图可以看出,Linux是一个典型的宏内核(一体化内核)结构.硬件系统上面时硬件抽象层,在硬件抽象层上面时内核服务 ...

  4. linux中dd命令写入数据,Linux中dd命令的用法

    dd命令: convert and copy a file 用法:dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#: block size, 复制单元大小 coun ...

  5. linux中mtd是什么目录,Linux mtd system

    题图:gratisography Linux mtd system MTD(Memory Technology Device),内存技术设备是Linux的存储设备中的一个子系统.其设计此系统的目的是, ...

  6. linux中dd命令详解,Linux基础知识之dd命令详解

    本文先简要介绍dd的参数,然后通过几个实例介绍dd的应用,这些素材整理来源于网络. dd 是 Linux/UNIX 下的一个非常有用的命令,其作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的 ...

  7. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  8. linux中less有什么作用,linux中less命令使用

    less与cat和more的区别: cat命令功能用于显示整个文件的内容单独使用没有翻页功能因此经常和more命令搭配使用,cat命令还有就是将数个文件合并成一个文件的功能. more命令功能:让画面 ...

  9. linux中内部命令有哪些,linux内部命令有哪些

    linux中常见的内部命令有:1.exit命令,退出当前的shell:2.history命令,显示历史执行过的命令:3.cd命令,切换当前工作目录:4.source命令,重新执行刚修改的初始化文件:5 ...

  10. linux取证教程,Linux中的取证(Forensics in Linux)

    Linux中的取证(Forensics in Linux) 数字调查的主要问题是通过加密或任何其他格式保护重要证据或数据. 基本示例是存储密码. 因此,有必要了解Linux操作系统在数字取证实施中的使 ...

最新文章

  1. 计算机图形什么叫参数连续性,计算机图形学--参数三次插值样条曲线.ppt
  2. 网关冗余--王贝的学习笔记
  3. 新增16条设计规约!阿里巴巴Java开发手册(详尽版)开放下载!
  4. C++简单实现GC和内存池
  5. 相机标定中标定棋盘的角点是哪个?
  6. 【转载】计算机网络基础知识总结
  7. 从第一范式(2nf)到第二范式(3nf)_啥是数据库范式
  8. java方法_Java方法
  9. spring @Bean注解的使用
  10. PHP实现讯飞语音转写demo
  11. 安卓手机多开助手v1.2 BY im大朋友
  12. 于飞seo:dedecms织梦文件目录说明讲解大全
  13. Telink zigbee射频和功耗测试的方法
  14. 乞丐的一句话,感动中国13亿人。
  15. 麒麟下适配mellanox网卡驱动
  16. python简易程序教程_Python-自制简易程序挂机刷御魂
  17. 用数据分析验证,王者荣耀完胜阴阳师,小学生才是最终的赢家
  18. html表格标题的垂直对齐方式
  19. 企业邮箱09年的十大新闻
  20. navicat显示中文为问号

热门文章

  1. MySQLdb/_mysql.c(29) : fatal error C1083: Cannot open include file: ‘mysql.h‘: No such file or direc
  2. 盗将行——微信群防骗指南
  3. 在 Linux 上安装 Adobe Flash Player
  4. [iOS]仿微博视频边下边播之滑动 TableView 自动播放
  5. 云计算是什么意思,还是先了解一下云计算技术的基本概念
  6. 【Javascript 基础】课堂笔记1
  7. 点餐系统-----数据库设计
  8. REST-Assured,接口自动化的 “瑞士军刀“- 初识篇
  9. 全球与中国高氧潜水电脑市场深度研究分析报告
  10. 数学不好能学计算机编程吗,数学很差能学计算机吗 有哪些窍门