当前位置:  技术问答>linux和unix

帮忙看一下这段makefile的含义。(ar ranlib)

    来源: 互联网  发布时间:2015-08-15

    本文导语:  rm -f libxf86config.a ar clq libxf86config.a Device.o Files.o Flags.o Input.o Keyboard.o Layout.o Module.o    Video.o Monitor.o Pointer.o Screen.o Vendor.o read.o scan.o write.o         DRI.o  ranlib libxf86config.a | rm -f libxf...

rm -f libxf86config.a

ar clq libxf86config.a Device.o Files.o Flags.o Input.o Keyboard.o Layout.o Module.o    Video.o Monitor.o Pointer.o Screen.o Vendor.o read.o scan.o write.o         DRI.o 

ranlib libxf86config.a


|
rm -f libxf86config.a
先删除旧的库文件

ar clq libxf86config.a Device.o Files.o Flags.o Input.o Keyboard.o Layout.o Module.o    Video.o Monitor.o Pointer.o Screen.o Vendor.o read.o scan.o write.o         DRI.o 
用ar命令将各目标文件收集起来放到一个静态库文件中

ranlib libxf86config.a
将libxf86config.a从归档库转换到随机库

另转移贴一份ar基本用法给你吧:

1、ar基本用法

   ar命令可以用来创建、修改库,也可以从库中提出单个模块。库是一单独的文件,里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。

 下面是ar命令的格式:
ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files...

   例如我们可以用ar rv libtest.a hello.o hello1.o来生成一个库,库名字是test,链接时可以用-ltest链接。该库中存放了两个模块hello.o和hello1.o。选项前可以有‘-’字符,也可以没有。下面我们来看看命令的操作选项和任选项。现在我们把{dmpqrtx}部分称为操作选项,而[abcfilNoPsSuvV]部分称为任选项。

{dmpqrtx}中的操作选项在命令中只能并且必须使用其中一个,它们的含义如下:

d:从库中删除模块。按模块原来的文件名指定要删除的模块。如果使用了任选项v则列出被删除的每个模块。

m:该操作是在一个库中移动成员。当库中如果有若干模块有相同的符号定义(如函数定义),则成员的位置顺序很重要。如果没有指定任选项,任何指定的成员将移到库的最后。也可以使用’a’,’b’,或’I’任选项移动到指定的位置。

p:显示库中指定的成员到标准输出。如果指定任选项v,则在输出成员的内容前,将显示成员的名字。如果没有指定成员的名字,所有库中的文件将显示出来。

q:快速追加。增加新模块到库的结尾处。并不检查是否需要替换。’a’,’b’,或’I’任选项对此操作没有影响,模块总是追加的库的结尾处。如果使用了任选项v则列出每个模块。 这时,库的符号表没有更新,可以用’ar s’或ranlib来更新库的符号表索引。

r:在库中插入模块(替换)。当插入的模块名已经在库中存在,则替换同名的模块。如果若干模块中有一个模块在库中不存在,ar显示一个错误消息,并不替换其他同名模块。默认的情况下,新的成员增加在库的结尾处,可以使用其他任选项来改变增加的位置。

t:显示库的模块表清单。一般只显示模块名。

x:从库中提取一个成员。如果不指定要提取的模块,则提取库中所有的模块。

下面在看看可与操作选项结合使用的任选项:
a:在库的一个已经存在的成员后面增加一个新的文件。如果使用任选项a,则应该为命令行中membername参数指定一个已经存在的成员名。

b:在库的一个已经存在的成员前面增加一个新的文件。如果使用任选项b,则应该为命令行中membername参数指定一个已经存在的成员名。

c:创建一个库。不管库是否存在,都将创建。

f:在库中截短指定的名字。缺省情况下,文件名的长度是不受限制的,可以使用此参数将文件名截短,以保证与其它系统的兼容。

i:在库的一个已经存在的成员前面增加一个新的文件。如果使用任选项i,则应该为命令行中membername参数指定一个已经存在的成员名(类似任选项b)。

l:暂未使用

N:与count参数一起使用,在库中有多个相同的文件名时指定提取或输出的个数。

o:当提取成员时,保留成员的原始数据。如果不指定该任选项,则提取出的模块的时间将标为提取出的时间。

P:进行文件名匹配时使用全路径名。ar在创建库时不能使用全路径名(这样的库文件不符合POSIX标准),但是有些工具可以。

s:写入一个目标文件索引到库中,或者更新一个存在的目标文件索引。甚至对于没有任何变化的库也作该动作。对一个库做ar s等同于对该库做ranlib。

S:不创建目标文件索引,这在创建较大的库时能加快时间。

u:一般说来,命令ar r…插入所有列出的文件到库中,如果你只想插入列出文件中那些比库中同名文件新的文件,就可以使用该任选项。该任选项只用于r操作选项。

v:该选项用来显示执行操作选项的附加信息。

V:显示ar的版本。

|
是自己做个静态链接库吧.第一行就是把老的删掉,第二行生成一个新的.第3行我也不知道.
查一下ar 和 ranlib命令应该可以知道的吧.

    
 
 

您可能感兴趣的文章:

  • 帮忙解释下这两个减号的含义
  • 谁知道AB显示的结果含义啊~?帮忙解释下~谢谢
  • 初写MAKEFILE遇到问题,麻烦大家帮忙。
  • 新手求救,关于内核makefile,请帮忙!
  • 帮帮忙啊!关于用makefile编译?
  • 帮忙看makefile啊
  • 请大家帮忙看一下我的Makefile
  • makefile的出错,请帮忙看看
  • 帮忙看个makefile
  • 一个简单的MAKEFILE问题, 高手帮忙看一下.
  • 我刚开始学着写makefile文件,可是第一次就运行不过去,请大家帮忙看看
  • 一个看不懂的makefile 求帮忙
  • 帮忙解释一下makefile里的一个问题
  • 请大侠帮帮忙,我的makefile的内容在执行make的时候怎么不连续?
  • makefile 问题,望大侠们过来帮帮忙,小弟在线急等
  • 各位老兄帮忙了!写makefile进行编译程序时,找不到iostream map vector
  • 只有一行代码的Makefile文件,在执行make命令时出错。请帮忙看看 ,谢谢
  • 帮忙改一下Makefile
  • 帮忙看看makefile 中关于变量的条件赋值 的问题吧?不搞定我下周就死了
  • 一段makefile出错,请各位帮忙看看问题出在哪!
  • Makefile移植问题!请大家帮忙看看!
  • 【帮忙测试】——我的一个自动生成Makefile文件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 努力努力再努力,帮忙帮忙来帮忙!
  • 在servlet中有一个关于单引号输出的问题,请大家帮忙,帮忙,帮帮忙!!
  • 小问题,你一定能够帮忙!——菜鸟请求帮忙!!
  • 帮忙帮忙如何设置变量pathclass
  • 没人帮忙吗?我想用JAVA编一个像WINDOW中的画图软件,现在出现了如下问题,请各位老哥老姐帮帮忙
  • 帮帮忙!SCO OpenServer 5.0.5 的root用户口令丢了,怎么找回来啊,帮帮忙!!!!!!
  • 我用smartupload组件遇到问题了,请帮忙!!
  • webmail问题,请高手帮忙!!!谁会使用IMP 3.0????!!!
  • 脚本问题,帮忙
  • 高手帮忙解释
  • 求教求教,shell问题...各位大哥,帮忙下
  • 关于程序移植,请知道的帮忙,分会加的
  • DELL服务器,安装RedHat EAS3.0,装完了,连不上SSH。。。。。哪位大虾帮忙!!急啊 !!!!
  • 关于聊天室的若干疑问!!!请各位大虾帮忙!
  • 有个问题?请帮忙!
  • 请求各位帮忙,关于绘制图像
  • 关于全选的问题大家帮忙看看~
  • 帮忙找个工作。
  • c/c++ iis7站长之家
  • 我怎么不能编译servlet?请帮忙!!!谢谢!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3