27

コンパイルされた が与えられたlib場合、それがコンパイルされた/mdかどうかを確認する方法はありますか? /mt(おそらくdumpbinツールを使用して)

編集: スイッチでコンパイルされなかっdumpbin /directives foo.libた場合の解決策です。そのような方法で最適化されたファイルを検査するオプションはありますか?lib/GLlib

4

2 に答える 2

14

Microsoft コンパイラの非常に優れた機能は、ソース ファイルを .obj ファイルにコンパイルするために使用されたコマンド ラインを保持することです。これにより、.lib ファイルを参照してそれを見つけることができます。それを待ちます、Notepad.exe。「cl.exe」を検索するだけです。

たとえば、VS2013 でビルドした Win32Project1.lib という名前のサンプル ライブラリで開いたメモ帳を使用すると、次のように表示されます。

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe cmd -c -ZI -nologo -W3 -WX- -sdl -Od -Oy- -DWIN32 -D_DEBUG -D_LIB -DHELLO_STACKOVERFLOW -D_UNICODE -DUNICODE -Gm -EHs -EHc -RTC1 -MDd -GS -fp:正確 -Zc:wchar_t -Zc:forScope -Ycstdafx.h -Fp"c:\Users\hpass_000\documents\visual studio 2013\Projects\Win32Project1\ Debug\Win32Project1.pch" -Fo"c:\Users\hpass_000\documents\visual studio 2013\Projects\Win32Project1\Debug\" -Fd"c:\Users\hpass_000\documents\visual studio 2013\Projects\Win32Project1\Debug \vc120.pdb" -Gd -TP -analyze- -errorreport:prompt -I"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include" -I"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\shared" -I"C:\Program Files (x86)\Windows Kits\8.1\Include\winrt" -X src stdafx.cpp pdb c:\Users\hpass_000 \documents\visual studio 2013\Projects\Win32Project1\Debug\vc120.pdb

ご覧のとおり、 /MDd でコンパイルしました

.lib には、設定が異なる可能性のある複数の .obj ファイルを含めることができることに注意してください。「-mt」「-md」で検索するとすぐにわかります。

于 2013-10-21T11:20:41.473 に答える