大家都知道,lib文件是很多obj文件合在一起得到的一个静态库文件。那某一个特定的lib文件,到底是由哪些obj文件组成的呢?
有一个工具可以帮到你,它的名字叫做lib.exe。
还是用LIBC.LIB来举例。我电脑上这个lib文件的位置是在“d:Program FilesMicrosoft Visual StudioVC98LibLIBC.LIB”,进入这个目录。
所有的lib使用选项:
d:Program FilesMicrosoft Visual StudioVC98Lib>lib /
Microsoft (R) Library Manager Version 6.00.8447
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
usage: LIB [options] [files]
options:
/CONVERT
/DEBUGTYPE:CV
/DEF[:filename]
/EXPORT:symbol
/EXTRACT:membername
/INCLUDE:symbol
/LIBPATH:dir
/LINK50COMPAT
/LIST[:filename]
/MACHINE:{ALPHA|ARM|IX86|MIPS|MIPS16|MIPSR41XX|PPC|SH3|SH4}
/NAME:filename
/NODEFAULTLIB[:library]
/NOLOGO
/OUT:filename
/REMOVE:membername
/SUBSYSTEM:{NATIVE|WINDOWS|CONSOLE|WINDOWSCE|POSIX}[,#[.##]]
/VERBOSE
可以使用list来显示其中的obj文件。
d:Program FilesMicrosoft Visual StudioVC98Lib>lib /list libc.lib
整个列表比较长,所以我又做了个重定向,将输入放到log文件中了。
d:Program FilesMicrosoft Visual StudioVC98Lib>lib /list libc.lib > d: estlibc.log
最终输出有600多行,所以折叠起来,大家可以展开看。
show sourceview sourceprint 001 Microsoft (R) Library Manager Version 6.00.8447
002 Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
003
004 ..uildintelst_objutil.obj
005 ..uildintelst_objmatherr.obj
006 ..uildintelst_objldexp.obj
007 ..uildintelst_objieeemisc.obj
008 ..uildintelst_objfrexp.obj
009 ..uildintelst_objfpexcept.obj
010 ..uildintelst_objessel.obj
011 ..uildintelst_objxmmi2_fp_emul.obj
012 ..uildintelst_objxmmi_fp_emul.obj
013 ..uildintelst_objsqrt.obj
014 ..uildintelst_objpow.obj
015 ..uildintelst_objlog10.obj
016 ..uildintelst_objlog.obj
017 ..uildintelst_obj an.obj
018 ..uildintelst_objcos.obj
019 ..uildintelst_objsin.obj
020 ..uildintelst_objatan.obj
021 ..uildintelst_objacos.obj
022 ..uildintelst_objasin.obj
023 ..uildintelst_obj estfdiv.obj
024 ..uildintelst_objpowhlp.obj
025 ..uildintelst_objmodf.obj
026 ..uildintelst_objieee87.obj
027 ..uildintelst_objhypot.obj
028 ..uildintelst_objhuge.obj
029 ..uildintelst_objgenexcep.obj
030 ..uildintelst_objftol.obj
031 ..uildintelst_objfsqrt.obj
032 ..uildintelst_objfrnd.obj
033 ..uildintelst_objfpctrl.obj
034 ..uildintelst_objfloor.obj
035 ..uildintelst_objfilter_simd.obj
036 ..uildintelst_objfilter.obj
037 ..uildintelst_objfabs.obj
038 ..uildintelst_objcommon.obj
039 ..uildintelst_objceil.obj
040 ..uildintelst_objadj_fdiv.obj
041 ..uildintelst_obj87trigh.obj
042 ..uildintelst_obj87triga.obj
043 ..uildintelst_obj87trig.obj
044 ..uildintelst_obj87tran.obj
045 ..uildintelst_obj87sqrt.obj
046 ..uildintelst_obj87fmod.obj
047 ..uildintelst_obj87except.obj
048 ..uildintelst_obj87disp.obj
049 ..uildintelst_obj87ctrigh.obj
050 ..uildintelst_obj87ctriga.obj
051 ..uildintelst_obj87ctran.obj
052 ..uildintelst_obj87cdisp.obj
053 ..uildintelst_objfltinf.obj
054 ..uildintelst_objx10fout.obj
055 ..uildintelst_obj enpow.obj
056 ..uildintelst_objstrgtold.obj
057 ..uildintelst_objmantold.obj
058 ..uildintelst_objintrncvt.obj
059 ..uildintelst_objfpinit.obj
060 ..uil