C++ How to tell if a .lib file was compiled with compiler option /MT, /MD, /MTd, /MDd, /clr etc?

来源:互联网 发布:盘古网络官方网站 编辑:程序博客网 时间:2024/04/27 16:58

Open the .lib file with Notepad.exe and search with keyword CL.exe, you can see similar command like below:


C:\ProProjects\RWSourcePro6_1_VS2010\source\tools\15s cl C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.EXE cmd -FoC:\ProProjects\RWSourcePro6_1_VS2010\source\tools\15s\islistit.obj -D_RWBUILD_tls -FdC:\ProProjects\RWSourcePro6_1_VS2010\lib\tls15s.pdb -nologo -IC:\ProProjects\RWSourcePro6_1_VS2010\source\tools\15s -MDd -W3 -Zi -GA -GR -Od -EHs -EHc -DRW_CLASSIC_STRING_CLASSES -DRW_CSTRING_MUTEX_COUNT=256 -D_RWCONFIG=15s -IC:\ProProjects\RWSourcePro6_1_VS2010 -IC:\ProProjects\RWSourcePro6_1_VS2010\source\tools -c -I"C:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE" -I"C:\Program Files\Microsoft Visual Studio 10.0\VC\ATLMFC\INCLUDE" -I"C:\Program Files\Microsoft SDKs\Windows\v7.0A\include" -I"C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\\" -TP -X src ..\islistit.cpp pdb C:\ProProjects\RWSourcePro6_1_VS2010\lib\tls15s.pdb


if cannot find similar command line like above, try search "lib" and maybe can find CRT library names.

t      .text          0      !Ò0]                                        '                C           i                    _            .rdata                            l           .debug$F             O    .text                 ­         ‚               ž            .debug$F                     .text          @      (Ð         «           .debug$F                     à   ??0RvDataFilter@@QAE@XZ __purecall ??_GRvDataFilter@@UAEPAXI@Z ??_ERvDataFilter@@UAEPAXI@Z ??2@YAPAXI@Z ??_7RvDataFilter@@6B@ ??_GRvDataFilter@@UAEPAXI@Z ??3@YAXPAX@Z ??1RvDataFilter@@UAE@XZ rvcb.obj/       935447800               100666  1352      `L gÍÁ7¤         .drectve        (   T                .text           0   |  ¬          P`.rdata             À  Ä         @0@.debug$F           Î  Þ         HB.text               è            P`.debug$F             ,         HB.text           @   6  v          P`.debug$F           Š  š         HB-defaultlib:LIBCMT -defaultlib:OLDNAMES V‹ñjÇ    è    ƒÄ‰F…Àt



so it was built with LIBCMT.lib, we know it was probably compiled with /MT options.


http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx

http://stackoverflow.com/questions/19487465/how-to-tell-if-a-lib-was-compiled-with-mt-or-md




0 0
原创粉丝点击