Ja, Sie könnten /DIRECTIVES
von dumpbin verwenden Option, um herauszufinden, mit welchen Laufzeitbibliotheken die Objekte in der .lib verknüpft werden sollen:
dumpbin /directives foo.lib
Suchen Sie nach Instanzen der hier angegebenen Laufzeitbibliotheken. Beispielsweise sehen Sie möglicherweise:
/DEFAULTLIB:MSVCRTD
(Modul kompiliert mit /MDd)
oder
/DEFAULTLIB:MSVCRT
(Modul kompiliert mit /MD)
oder
/DEFAULTLIB:LIBCMT
(Modul kompiliert mit /MT)
Es werden wahrscheinlich viele /DEFAULTLIB
sein Direktiven, sodass Sie nach Begriffen suchen können wie:
dumpbin /DIRECTIVES foo.lib | find /i "msvcr"
Ein sehr nettes Feature des Microsoft-Compilers ist, dass er die Befehlszeile beibehält, die verwendet wurde, um eine Quelldatei in die .obj-Datei zu kompilieren. Dadurch können Sie es wiederfinden, indem Sie sich die .lib-Datei mit warten ansehen , Notepad.exe. Suchen Sie einfach nach "cl.exe".
Dies sehe ich beispielsweise, wenn ich Notepad verwende, das in einer Beispielbibliothek namens Win32Project1.lib geöffnet ist, die ich mit VS2013 erstellt habe:
Wie Sie sehen können, habe ich mit /MDd
kompiliertBeachten Sie, dass eine .lib mehrere .obj-Dateien mit möglicherweise unterschiedlichen Einstellungen enthalten kann. Mit der Suche nach "-mt" und "-md" finden Sie es schnell heraus.