鉴于编译lib,有没有办法告诉它是编译/md或/mt只是通过查看它(可能与dumpbin工具)?
编辑:
dumpbin /directives foo.lib对于lib未使用/GLswitch 编译的情况的解决方案.是否有选项可以检查lib以这种方式优化的文件?
Chr*_*sen 30
是的,您可以使用dumpbin的/DIRECTIVES选项来查找.lib中的对象要链接的运行时库:
dumpbin /directives foo.lib
Run Code Online (Sandbox Code Playgroud)
查找此处指定的运行时库的实例.例如,您可能会看到:
/DEFAULTLIB:MSVCRTD (用/ MDd编译的模块)
要么
/DEFAULTLIB:MSVCRT (用/ MD编译的模块)
要么
/DEFAULTLIB:LIBCMT (用/ MT编译的模块)
可能会有很多/DEFAULTLIB指令,因此您可以使用以下术语进行搜索:
dumpbin /DIRECTIVES foo.lib | find /i "msvcr"
Run Code Online (Sandbox Code Playgroud)
希望这能让你走上正轨.
Han*_*ant 15
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:precise -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 \包括 "-I "C:\ Program Files文件(x86)的\的Windows套件\ 8.1 \包含\嗯" -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"可以让您快速找到答案.
| 归档时间: |
|
| 查看次数: |
8555 次 |
| 最近记录: |